2
目录
J-IM 开发文档
..............................................................................................................................................................................
1
目录
...............................................................................................................................................................................................
2
第一章 j-im 简介
.......................................................................................................................................................................
3
1.1 初识 j-im
.....................................................................................................................................................................
3
第二章 j-im 入门
........................................................................................................................................................................
3
1.1 工程结构
......................................................................................................................................................................
3
1.2 如何开发自己 IM 服务器
............................................................................................................................................
3
1. 引入 jim-server 开发包
......................................................................................................................................
5
2. 定义启动类
.............................................................................................................................................................
5
3. 定义 cmd 命令业务处理器
.....................................................................................................................................
5
4. 定义服务端用户通道监听器
................................................................................................................................
6
5. 注册添加 cmd 业务处理器及配置通道监听器
.....................................................................................................
7
6. 启动
.........................................................................................................................................................................
7
1.3 如何开发自己的 IM 客户端
........................................................................................................................................
8
1. 详解 j-im 自定义 socket 协议结构
....................................................................................................................
8
2. 引入 jim-common 公共开发包
............................................................................................................................
10
3. 定义 Packet
.........................................................................................................................................................
10
4. 定义客户端消息处理器
......................................................................................................................................
10
5. 定义启动类
..........................................................................................................................................................
11
6. 运行客户端
..........................................................................................................................................................
12
1.4 常用类介绍及如何使用
............................................................................................................................................
12
1. ImConfig 类
.........................................................................................................................................................
12
2. ImServerGroupContext 类
.................................................................................................................................
15
3. IMessageHelper 接口类
.....................................................................................................................................
16
4. ImServerStarter 类
............................................................................................................................................
17
5. CommandManager 类
.............................................................................................................................................
19
6. ServerHandlerManager 类
.................................................................................................................................
23
7. AbstractChatProcessor 类
...............................................................................................................................
23
J-IM 官方群
.................................................................................................................................................................................
25
3
第一章 j-im 简介
1.1 初识 j-im
j-im 是一个 IM(网络即时通讯)中间件,它是基于高性能的网络通讯框架 t-io 来开发的轻量级、高性能、
易扩展、支持百万在线用户的 IM 中间件,它不仅可以作为 IM 服务无缝接入应用系统,同时也可以为系统提供可靠
的消息推送、数据转发等服务,它的主要目标是降低即时通讯门槛,快速打造低成本接入在线 IM 系统,同时通过极
简洁的消息格式(JSON)就可以实现多端不同协议间的消息发送如内置(Http、Websocket、Socket 自定义 IM 协议)
等,并提供通过 Http 协议的 API 接口进行消息发送,发送方无需关心接收端属于什么协议!
第二章 j-im 入门
1.1 工程结构
首先来看下 j-im 的工程目录结构:分为五个子工程,分别为 jim-client、jim-common、jim-parent、jim-server、
jim-server-demo ;工程截图如下:
图 1 工程截图
各个项目用途:
1、jim-client(客户端入门工程,供开发者通过 socket 编写自己的 IM 客户端参考使用)
2、jim-common(j-im 客户端及服务端公用包,开发 server 端与 client 端所依赖包)
3、jim-parent(管理所有子工程及配置,包括版本号及 maven 库依赖等)
4、jim-server(j-im 服务端开发包,开发者可以基于该包开发属于自己的 IM 服务端程序)
5、jim-server-demo(笔者基于 jim-server 开发的 IM 服务端 demo,供开发者参考使用)
1.2 如何开发自己 IM 服务器
接 下来我们来 看下 怎 么 基 于 jim-server 开 发 一 个属 于 自 己 的 im 服 务 端 程 序, 本 教 程 中以笔者 开 发 的
jim-server-demo 来作为例子讲解如何快速开发一个 im 服务器。
在开发之前我们先来了解一下 j-im 的消息结构是什么样子,因为 j-im 通讯都是基于这些个消息结构及命令 cmd
来处理用户消息的,也可以帮助更好的理解后面的 jim-server 端是如何处理消息逻辑以及如何扩展实现自己的 cmd
命令及消息结构。
目前消息结构作者只列举了 8 个,因为作者只用到了其中这些,但是还有别的一些消息结构如:加入群组、退出
群组等消息结构就不一一列举了,消息命令结构如下:
4
图 2 消息格式
具体每个消息结构及 cmd 命令码是做什么用的,上面都写的很详细,这里先简单认识下,后面也会有详细介绍,我
5
们继续往下看。
1. 引入 jim-server 开发包
在 pom.xml 文件中引入 jim-server(目前 maven 最新版 1.0.0.v20180413-RELEASE)
图 3 pom.xml 中引入 jim-server
2. 定义启动类
图 4 启动类
3. 定义 cmd 命令业务处理器
根据业务需要定义相关 cmd 处理器,如果不需要额外的业务处理可以不需要添加,jim-server-demo 中定义了
DemoWsHandshakeProcessor、LoginServiceProcessor 两个业务处理器,分别应用在握手环节和登录环节其代码分别
如下:
DemoWsHandshakeProcessor 代码: