J-IM 2.0.0 发布,不仅仅是单机百万更有集群支撑

轨迹_
 轨迹_
发布于 2018年05月28日
收藏 58

J-IM 2.0.0 发布了,J-IM 是一个用 JAVA 语言,基 于t-io 开发的轻量、高性能、支持几十万至百万在线用户的IM(即时通讯)框架,它的主要目标降低即时通讯门槛,使用者基于它可以极快速、低成本的打造接入自己的高性能即时通讯服务器,并且通过极简洁的消息格式(JSON)就可以实现多端不同协议间的消息发送如内置(Http、Websocket、Tcp自定义IM协议)等,并提供通过Http协议的api接口进行消息发送无需关心接收端属于什么协议,一个消息格式搞定一切!

主要特点:

  1. 高性能(单机可支持几十万至百万人同时在线)

  2. 轻量、可扩展性极强

  3. 支持集群多机部署

  4. 消息格式极其简洁(JSON)

  5. 支持多种协议(Socket自定义IM协议、Websocket、Http),可分别或组合独立部署。

  6. 内置消息持久化(离线、历史、漫游),保证消息可靠性,高性能存储

  7. 各种丰富的API接口。

  8. 零成本部署,一键启动。

本次更新列表如下:

  1. 支持集群多机部署,配置极其简单,一个参数is_cluster(on、off)即可,无需额外复杂配置!

  2. 获取用户信息消息结构变化:

    (1)

    参数:其中的userid成为必填项,type的状态更改为(0:所有在线用户,1:所有离线线用户,2:所有用户[在线+离线])

    (2)响应消息体User发生变化:通过(1)中的type指定返回的用户框架会自动对应在user的friends、groups中,这样user拿到了以后,用户信息及好友、群组用户在线状态status(online:offline)都有了,前端直接显示即可,大大减少了工作量。

  3. ImAio接口中的根据用户id获取当前用户接口User getUser(String userid)由原来的List返回值变为单个User对象返回值

  4. ImAio接口增加根据群组id获取用户接口List<User> getAllUserByGroup(String group);

  5. ImAio中相关接口如:sendToUser、sendToGroup、sendToAll、sendToIp等增加支持集群发送。

  6. 丰富消息持久化信息如User、Group、在线状态等。

  7. 消息助手IMessageHelper增加isOnline、getGroupUsers、getFriendUsers等实用的接口方法。

  8. 原来不同协议的ServerHandler更改为ProtocolHandler,如WsProtocolHandler、TcpProtocolHandler、HttpProtocolHandler等。

  9. 支持可扩展配置不同协议消息包转化,如:WsProtocol、TcpProtocol等。

  10. 握手环节增加握手后方法支持onAfterHandshaked;

  11. 绑定用户群组由原来的用户自定义listener中实现,更改为登录环节LoginReqHandler中实现内置绑定群组功能!

  12. 其它细节及设计优化

最新pom:

<dependency>
    <groupId>org.j-im</groupId>
    <artifactId>jim-server</artifactId>
    <version>2.0.0.v20180520-RELEASE</version>
</dependency>

别忘了给 https://gitee.com/xchao/j-im 点个赞 (Star) 哦。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:J-IM 2.0.0 发布,不仅仅是单机百万更有集群支撑
资讯来源:J-IM
加载中

精彩评论

talent-tan
talent-tan

引用来自“红薯”的评论

bugfix 什么时候出啊?哈哈
j-im不是j2cache,虽然都是用java开发的
轨迹_
轨迹_

引用来自“谁来与我大战三百回合”的评论

一个json协议搞定一切,图片怎么用json搞定?不要跟我说用base64编码。
图片,会有文件传输助手,上传到文件服务器,回传图片路径,而不是每次传输图片。。。
轨迹_
轨迹_

引用来自“红薯”的评论

bugfix 什么时候出啊?哈哈
用户好多人用了,没有反馈bug!你说我能咋办。。。哈哈😅
轨迹_
轨迹_

引用来自“talent-tan”的评论

支持!祝j-im越来越好!
谢谢谭总支持,祝t-io越来越给力,加油!
树之风
树之风
感谢作者努力,祝j-im越来越好!

最新评论(31

j
java_小猿

引用来自“java_小猿”的评论

当服务器关闭的时候,在线用户都被迫关闭连接 当服务器重启,被下线的客户不会自动登录 但此时如果用一个新用户去登陆,之前被迫下线的用户全部显示在线 这个能不能怎么优化下?
而且新登录的用户给被迫下线用户发送消息,没有被判断为离线消息,导致被迫下线的用户重新登陆后,接收不到该消息
j
java_小猿
当服务器关闭的时候,在线用户都被迫关闭连接 当服务器重启,被下线的客户不会自动登录 但此时如果用一个新用户去登陆,之前被迫下线的用户全部显示在线 这个能不能怎么优化下?
赤龙之祖
心跳是起什么作用的?
f
feiyuyitiao
chrome报错, firefox启动正常!mvn exec:java -Dexec.mainClass="org.jim.server.demo.ImServerDemoStart"
轨迹_
轨迹_

引用来自“zxcholmes”的评论

ssl加密呢?聊天明文的话,不安全
@zxcholmes 看近期发布!
Forever____
Forever____
ssl加密呢?聊天明文的话,不安全
轨迹_
轨迹_

引用来自“谁来与我大战三百回合”的评论

一个json协议搞定一切,图片怎么用json搞定?不要跟我说用base64编码。
图片,会有文件传输助手,上传到文件服务器,回传图片路径,而不是每次传输图片。。。
谁来与我大战三百回合
一个json协议搞定一切,图片怎么用json搞定?不要跟我说用base64编码。
轨迹_
轨迹_

引用来自“开源中国首席睡觉专家”的评论

封装tio做即时聊天吗?android能用不。

引用来自“轨迹_”的评论

可以的哦,J-IM文档中有详细告诉你其它客户端怎么基于J-IM私有协议去快速开发一个自己的IM客户端,感兴趣可以进群了解的!

引用来自“开源中国首席睡觉专家”的评论

@轨迹_ 群号发一下
https://gitee.com/xchao/j-im,这里最下面就有
开源中国首席罗纳尔多
开源中国首席罗纳尔多

引用来自“开源中国首席睡觉专家”的评论

封装tio做即时聊天吗?android能用不。

引用来自“轨迹_”的评论

可以的哦,J-IM文档中有详细告诉你其它客户端怎么基于J-IM私有协议去快速开发一个自己的IM客户端,感兴趣可以进群了解的!
@轨迹_ 群号发一下
返回顶部
顶部