聊天系统
叙
对于互联的多用户在线游戏,聊天是不可少的。
现有的几个开源方案
Jabber/XMPP的弊端
对于移动互联网环境来说,XMPP是臃肿的,实践中表现并非尽人意,延迟,群聊用户支持的用户不多。 从客户端来讲,更为耗电,消息处理延迟,并发量不大。
轻巧的MQTT
MQTT(Message Queuing Telemetry Transport) 是IBM开发的一个即时通讯协议。
架构设计实现
CHAT MESSAGE Protocal
client向server发送的命令协议比较简单,使用行指令。空格分隔,第一个单词为指令。
GET group datetime
group: 是订阅组消息 datetime: 是用户上次获取消息的时间,如果超过服务的限制会返回过去五分钟的消息。
得到到回复:
ok:1034\r\n [{'msg': 'hello group' 'from' : 'user_id', datetime: '2014-08-11 12:12:123', ...}, {'msg': 'hello group' 'from' : 'user_id3', datetime: '2014-08-11 12:12:123', ...}, ... ]
协议头行为状态和内容长度,以英文冒号分隔。
如果失败,将返回错误信息文本:
error:100\r\n Unknow error
来源:https://www.cnblogs.com/nagi/p/4191449.html