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

  

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

猜你喜欢

转载自www.oschina.net/news/96517/j-im-2-0-0-released