天涯论坛

 找回密码
 立即注册
搜索
查看: 67|回复: 4

单机支持百万在线用户IM(即时通讯)J-IM

[复制链接]

3048

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109040
发表于 2024-8-22 15:36:08 | 显示全部楼层 |阅读模式

J-IM简介

J-IM 是用JAVA语言,基于t-io研发的轻量、高性能、单机支持几十万至百万在线用户IM,重点目的降低即时通讯门槛,快速打造低成本接入在线IM系统,经过极简洁的信息格式就能够实现多端区别协议间的信息发送如内置(Http、Websocket、Tcp自定义IM协议)等,并供给经过http协议的api接口进行信息发送无需关心接收端属于什么协议,一个信息格式搞定一切!

JavaDoc https://apidoc.gitee.com/xchao/j-im/

重点特点

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:私聊)", "group_id":"群组id仅在chatType为(1)时需要,String类型", "content": "内容", "extras" : "扩展字段,JSON对象格式如:{扩展字段名叫作:扩展字段value}" }

请求: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类型", "loginname": "用户名", "password": "秘码", "token": "校验码(此字段可与logingname、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)

性能

极其震撼的性能,那个每秒发送500万条聊天信息,单机支持几十万人同期在线的测试当年导致极重争议,瞧瞧t-io用户的一则测试报告吧: t-io 30W长连接并发压力测试报告

运用

引入j-im(快速研发自己的高性能IM服务器),在你的pom.xml中加入如下代码片段<dependency> <groupId>org.j-im</groupId> <artifactId>jim-server</artifactId> <version>2.5.0.v20181115-RELEASE</version> </dependency>

J-IM有些截图

Web拜访位置:http://localhost:8888

Http协议api调用位置

:http://localhost:8888/api/message/send

项目位置

https://gitee.com/xchao/j-im





上一篇:基于t-io研发的轻量、高性能、单机支持几十万至百万在线用户IM
下一篇:java im聊天 即时通讯支持几十万至百万在线用户IM源码免费赠送
回复

使用道具 举报

1

主题

826

回帖

-1

积分

限制会员

积分
-1
发表于 2024-9-1 16:07:23 | 显示全部楼层
楼主节操掉了,还不快捡起来!
回复

使用道具 举报

3070

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158931
发表于 2024-10-5 11:44:25 | 显示全部楼层
“板凳”(第三个回帖的人)‌
回复

使用道具 举报

2986

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569168
发表于 2024-10-13 08:10:47 | 显示全部楼层
楼主的文章非常有意义,提升了我的知识水平。
回复

使用道具 举报

2986

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569168
发表于 2024-10-28 10:34:00 | 显示全部楼层
哈哈、笑死我了、太搞笑了吧等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 13:18 , Processed in 0.109321 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.