TiiSocketService
概述
TiiSocketService是一套基于socket实现的即时通讯系统。主要应用于app之间的即时通讯,实现了点对点通讯,以及群通讯;
开发指南
简介
TiiSocketService是一套基于socket实现的即时通讯系统。您可以依照以下接口实现应用端的即时通讯:
- 点对点通讯:可以通过socket实现点对点通讯;
- 群通讯:可以通过socket实现类似多人在线聊天功能;
点对点通讯
简介
- 基于socket实现两个客户端的点对点通讯
与SocketService建立socket连接
- 连接参数 ip:192.168.0.121 port:9988
传入参数(连接成功后马上传入如下json,以完成身份认证)(使用utf8编码)
{ "groupIds":["jhoa_single"], //list对象,使用appId+“_single”作为组名(点对点通信) "userUid":2, //用户Uid "userName":"herb",//用户名 "appId":"jhoa" //应用Id }
发送消息
当建立了socket连接后,您就可以依据对方userUid,向对方发送即时讯息(使用utf8编码),格式如下:
{ "messNote":"qwewq", //消息内容 "messType":1, //消息类型1代表文字,2代表图片,3代表语音 "groupId":"jhoa_single" //发送到的群组id,点对点通讯使用这个固定Id "receiverUid":5493563 //接收者Uid }
接受消息
- 接收到的即时消息格式如下(需要utf8解码):
{
"messNote":"我要下了,大家再见", //消息内容
"messType":"1" //消息类型1代表文字 ,2代表图片,3代表语音
"groupId":"jhoa_single", //群组id
"time":"2017-01-06 10:46:50", //消息发送时间
"userName":"herb", //发送人姓名(应用常用数据)
"userUid":5493563, //发送人Uid(应用常用数据)
"flag":101 //很重要 flag为101表示为基本聊天信息,其它则应当关闭socket (主要为异地登录和服务器错误,详情请看常见错误码)
}
群通讯
简介
- 基于socket实现的群聊通讯,可以在一个群组内发送消息(广播)
与SocketService建立socket连接
- 连接参数 ip:192.168.0.121 port:9988
传入参数(连接成功后马上传入如下json,以完成身份认证)(使用utf8编码)
{ "groupIds":["jhoa_123456","jhoa_654321"], //list对象,使用appId+“_自定义”作为组名(可多个,也可与点对点通讯混用) "userUid":2, //用户Uid "userName":"herb",//用户名 "appId":"jhoa" //应用Id }
发送消息
当建立了socket连接后,您就可以依据对方userUid,向对方发送即时讯息(使用utf8编码),格式如下:
{ "messNote":"qwewq", //消息内容 "messType":1, //消息类型1代表文字,2代表图片,3代表语音 "groupId":"jhoa_single" //发送到的群组id,点对点通讯使用这个固定Id "receiverUid":5493563 //接收者Uid,群通讯时此项传 0 }
接受消息
接收到的即时消息格式如下(需要utf8解码):
{ "messNote":"我要下了,大家再见", //消息内容 "messType":"1" //消息类型1代表文字 ,2代表图片,3代表语音 "groupId":"jhoa_single", //群组id "time":"2017-01-06 10:46:50", //消息发送时间 "userName":"herb", //发送人姓名(应用常用数据) "userUid":5493563, //发送人Uid(应用常用数据) "flag":101 //**很重要 flag为101表示为基本聊天信息,其它则应当关闭socket (主要为异地登录和服务器错误,详情请看常见错误码)** }
注意事项
- 点对点通讯和群通讯可以同时建立,即在groupIds传入相对应组名
- 所有json请在utf8编码后传入,接收到json时请先utf8解码
常见错误码
*flag作为状态标记,请先检查flag参数,再进行消息内容读取
定义(flag) | 描述(msg) | 可能原因 |
---|---|---|
101 | success | 消息返回正常 |
201 | SOCKET_CONNCTION_PARAMS_ERROE | 建立连接参数错误,请检查groupId是否为空及userUid是否为正整数 |
202 | SOCKET_CONNCTION_GROUPID_ERROR | 建立连接时,单个groupId格式错误 |
301 | SOCKET_CONNCTION_DUPLICATE_LOGIN | 多端登陆,被踢下线 |
401 | SOCKET_SERVICE_ERROR | 服务器错误,请联系管理员 |