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 | 服務器錯誤,請聯繫管理員 |