J-IM 2.0.0 发布了,J-IM 是一个用 JAVA 语言,基 于t-io 开发的轻量、高性能、支持几十万至百万在线用户的IM(即时通讯)框架,它的主要目标降低即时通讯门槛,使用者基于它可以极快速、低成本的打造接入自己的高性能即时通讯服务器,并且通过极简洁的消息格式(JSON)就可以实现多端不同协议间的消息发送如内置(Http、Websocket、Tcp自定义IM协议)等,并提供通过Http协议的api接口进行消息发送无需关心接收端属于什么协议,一个消息格式搞定一切!
主要特点:
高性能(单机可支持几十万至百万人同时在线)
轻量、可扩展性极强
支持集群多机部署
消息格式极其简洁(JSON)
支持多种协议(Socket自定义IM协议、Websocket、Http),可分别或组合独立部署。
内置消息持久化(离线、历史、漫游),保证消息可靠性,高性能存储
各种丰富的API接口。
零成本部署,一键启动。
本次更新列表如下:
支持集群多机部署,配置极其简单,一个参数is_cluster(on、off)即可,无需额外复杂配置!
获取用户信息消息结构变化:
(1)
参数:其中的userid成为必填项,type的状态更改为(0:所有在线用户,1:所有离线线用户,2:所有用户[在线+离线])
(2)响应消息体User发生变化:通过(1)中的type指定返回的用户框架会自动对应在user的friends、groups中,这样user拿到了以后,用户信息及好友、群组用户在线状态status(online:offline)都有了,前端直接显示即可,大大减少了工作量。
ImAio接口中的根据用户id获取当前用户接口User getUser(String userid)由原来的List返回值变为单个User对象返回值
ImAio接口增加根据群组id获取用户接口List<User> getAllUserByGroup(String group);
ImAio中相关接口如:sendToUser、sendToGroup、sendToAll、sendToIp等增加支持集群发送。
丰富消息持久化信息如User、Group、在线状态等。
消息助手IMessageHelper增加isOnline、getGroupUsers、getFriendUsers等实用的接口方法。
原来不同协议的ServerHandler更改为ProtocolHandler,如WsProtocolHandler、TcpProtocolHandler、HttpProtocolHandler等。
支持可扩展配置不同协议消息包转化,如:WsProtocol、TcpProtocol等。
握手环节增加握手后方法支持onAfterHandshaked;
绑定用户群组由原来的用户自定义listener中实现,更改为登录环节LoginReqHandler中实现内置绑定群组功能!
其它细节及设计优化
最新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) 哦。