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

2018年05月28日

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) 哦。

展开阅读全文
61 收藏
分享
加载中
精彩评论

引用来自“红薯”的评论

bugfix 什么时候出啊?哈哈
j-im不是j2cache,虽然都是用java开发的
2018-05-28 09:43
5
举报

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

一个json协议搞定一切,图片怎么用json搞定?不要跟我说用base64编码。
图片,会有文件传输助手,上传到文件服务器,回传图片路径,而不是每次传输图片。。。
2018-06-04 09:57
2
举报

引用来自“红薯”的评论

bugfix 什么时候出啊?哈哈
用户好多人用了,没有反馈bug!你说我能咋办。。。哈哈😅
2018-05-28 10:23
2
举报

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

支持!祝j-im越来越好!
谢谢谭总支持,祝t-io越来越给力,加油!
2018-05-28 10:23
2
举报
感谢作者努力,祝j-im越来越好!
2018-05-28 10:05
2
举报
最新评论 (31)

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

当服务器关闭的时候,在线用户都被迫关闭连接 当服务器重启,被下线的客户不会自动登录 但此时如果用一个新用户去登陆,之前被迫下线的用户全部显示在线 这个能不能怎么优化下?
而且新登录的用户给被迫下线用户发送消息,没有被判断为离线消息,导致被迫下线的用户重新登陆后,接收不到该消息
2018-11-29 17:38
0
回复
举报
当服务器关闭的时候,在线用户都被迫关闭连接 当服务器重启,被下线的客户不会自动登录 但此时如果用一个新用户去登陆,之前被迫下线的用户全部显示在线 这个能不能怎么优化下?
2018-11-29 14:53
0
回复
举报
心跳是起什么作用的?
2018-09-21 10:17
0
回复
举报
chrome报错, firefox启动正常!mvn exec:java -Dexec.mainClass="org.jim.server.demo.ImServerDemoStart"
2018-08-17 19:37
0
回复
举报

引用来自“zxcholmes”的评论

ssl加密呢?聊天明文的话,不安全
@zxcholmes 看近期发布!
2018-06-06 10:07
0
回复
举报
ssl加密呢?聊天明文的话,不安全
2018-06-05 17:11
0
回复
举报

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

一个json协议搞定一切,图片怎么用json搞定?不要跟我说用base64编码。
图片,会有文件传输助手,上传到文件服务器,回传图片路径,而不是每次传输图片。。。
2018-06-04 09:57
2
回复
举报
一个json协议搞定一切,图片怎么用json搞定?不要跟我说用base64编码。
2018-06-04 09:38
0
回复
举报

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

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

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

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

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

@轨迹_ 群号发一下
https://gitee.com/xchao/j-im,这里最下面就有
2018-05-29 10:58
1
回复
举报

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

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

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

可以的哦,J-IM文档中有详细告诉你其它客户端怎么基于J-IM私有协议去快速开发一个自己的IM客户端,感兴趣可以进群了解的!
@轨迹_ 群号发一下
2018-05-29 10:53
1
回复
举报
更多评论
31 评论
61 收藏
分享
返回顶部
顶部