查看原文
其他

开源项目 | 一款 IM 即时通讯系统,真是优雅!

康熙 终码一生 2022-09-22

点击“终码一生”,关注,置顶公众号

每日技术干货,第一时间送达!



1

简介


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



2

主要特点


  • 高性能(单机可支持几十万至百万人同时在线)

  • 轻量、可扩展性极强

  • 支持集群多机部署

  • 支持SSL/TLS加密传输

  • 消息格式极其简洁(JSON)

  • 一端口支持可插拔多种协议(Socket自定义IM协议、Websocket、Http),各协议可分别独立部署。

  • 内置消息持久化(离线、历史、漫游),保证消息可靠性,高性能存储

  • 各种丰富的API接口。

  • 零成本部署,一键启动。


 

3

消息格式


聊天请求消息结构


{
   "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": "内容",
   "extras" : "扩展字段,JSON对象格式如:{'扩展字段名称':'扩展字段value'}"
}


鉴权请求消息结构


{
    "cmd":"命令码(3)int类型",
    "token": "校验码"
}



4

使用说明


服务端


快速开发自己的高性能IM服务器:引入jim-server,在你的pom.xml中加入如下代码片段


<dependency>
    <groupId>org.j-im</groupId>
    <artifactId>jim-server</artifactId>
    <version>3.0.0.v20200501-RELEASE</version>
</dependency>


客户端


快速开发自己的IM客户端:引入jim-client,在你的pom.xml中加入如下代码片段


<dependency>
    <groupId>org.j-im</groupId>
    <artifactId>jim-client</artifactId>
    <version>3.0.0.v20200501-RELEASE</version>
</dependency>



5

部分截图






好了,如果你觉得这个项目不错,就赶快来试试吧!项目相关信息已经放到了公众号上!


关注👇👇 终码一生 公众号!后台回复关键词【1007】可以获取更多项目相关信息及源码下载哦!

👆关注公众号回复【1007】👆

👆获取项目相关信息👆



往期推荐



手写了一个简单的JSON解析器,网友直乎:牛!

卸载 Navicat!事实证明这款 Java 开发的工具更加强大...

Nginx+Redis 搭建高性能缓存利器!

美团:订单30分钟未支付自动取消怎么实现?

推荐一款帅气逼人的 Redis 可视化工具!

面试官:为什么 MySQL 中 Delete 表数据后,磁盘空间却还是被占用?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存