J-IM 单机支持几十至百万在线用户IM(即时通讯)高性能消息中间件开源项目

我要开发同款
匿名用户2018年05月07日
37阅读
开发技术Java
所属分类服务器软件、电话/通讯/IM聊天
授权协议Apache

作品详情

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

官网地址

https://www.j-im.cloud

主要特点 1、高性能(单机可支持几十万至百万人同时在线)  2、轻量、可扩展性极强  3、支持集群多机部署    4、支持SSL/TLS加密传输  5、消息格式极其简洁(JSON)  6、一端口支持多种协议(Socket自定义IM协议、Websocket、Http),可分别独立部署  7、内置消息持久化(离线、历史、漫游),保证消息可靠性,高性能存储  8、各种丰富的API接口  9、零成本部署,一键启动消息格式

1.聊天请求消息结构

{   "from": "来源ID",   "to": "目标ID",   "cmd":"命令码(11)int类型",   "createTime": "消息创建时间long类型",   "msgType": "消息类型int类型(0:text、1:image、2:voice、3:vedio、4:music、5:news)",   "chatType":"聊天类型int类型(0:未知,1:公聊,2:私聊)",   "groupId":"群组id仅在chatType为(1)时需要,String类型",   "content": "内容"}请求:COMMAND_CHAT_REQ(11)响应:COMMAND_CHAT_RESP(12)

2.鉴权请求消息结构

{    "cmd":"命令码(3)int类型",    "token": "校验码"}请求:COMMAND_AUTH_REQ(3)响应:COMMAND_AUTH_RESP(4)

3.握手请求消息结构

{    "cmd":"命令码(1)int类型",    "hbyte":"握手1个字节"}说明:请求:COMMAND_HANDSHAKE_REQ(1)响应:COMMAND_HANDSHAKE_RESP(2)

4.登录请求消息结构

{    "cmd":"命令码(5)int类型",    "userId": "用户账号",    "password": "密码",    "token": "校验码(此字段可与userId、password共存,也可只选一种方式)"}请求:COMMAND_LOGIN_REQ(5)响应:COMMAND_LOGIN_RESP(6)

5.心跳请求消息结构

{    "cmd":"命令码(13)int类型",    "hbbyte":"心跳1个字节"}请求:COMMAND_HEARTBEAT_REQ(13)响应:COMMAND_HEARTBEAT_REQ(13)

6.关闭、退出请求消息结构

{    "cmd":"命令码(14)int类型",    "userId":"用户Id"}请求:COMMAND_CLOSE_REQ(14)响应:无

7.获取用户信息请求消息结构

{   "cmd":"命令码(17)int类型",   "userId":"用户id(必填项)",   "type":"获取类型(0:所有在线用户,1:所有离线线用户,2:所有用户[在线+离线])"}请求:COMMAND_GET_USER_REQ(17)响应:COMMAND_GET_USER_RESP(18)

8.获取用户消息请求结构

{     "cmd":"命令码(19)int类型",     "fromUserId":"消息发送用户id(此字段必须与userId一起使用,获取双方聊天消息),非必填",     "userId":"当前用户id(必填字段),当只有此字段时,type必须为0,意思是获取当前用户所有离线消息(好友+群组)",     "groupId":"群组id(此字段必须与userId一起使用,获取当前用户指定群组聊天消息),非必填",     "beginTime":"消息区间开始时间Date毫秒数double类型,非必填",     "endTime":"消息区间结束时间Date毫秒数double类型,非必填",     "offset":"分页偏移量int类型,类似Limit 0,10 中的0,非必填",     "count":"显示消息数量,类似Limit 0,10 中的10,非必填",     "type":"消息类型(0:离线消息,1:历史消息)"}请求:COMMAND_GET_MESSAGE_REQ(19)响应:COMMAND_GET_MESSAGE_RESP(20)使用-服务端(快速开发自己的高性能IM服务器):引入jim-server,在你的pom.xml中加入如下代码片段:org.j-imjim-server3.0.0.v20200501-RELEASE-客户端(快速开发自己的IM客户端):引入jim-client,在你的pom.xml中加入如下代码片段:org.j-imjim-client3.0.0.v20200501-RELEASE新版官网界面截图

Http协议api调用地址:https://localhost:8888/api/message/send

近期发布支持Https、Wss (已完成)支持J-PUSH消息推送支持图片、语音、视频发送等官网开发
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论