IM 选型 协议 服务器
xmpp协议,xml传输
openfire,smak
mqtt协议,IBM出的
流量小,功能不太全
MQTT的优点是协议简单,流量少,但是它并不是一个专门为IM设计的协议,多使用于推送。
MQTT是IBM推出的一种针对移动终端设备的基于TCP/IP的发布/预订协议,可以连接大量的远程传感器和控制设备。
MQTT的官网见:http://mqtt.org/。其中http://mqtt.org/software里面提供了官方推荐的各种服务器和客户端使用的各种语言版本的API
Erlang MQTT消息服务器emqtt
SIP协议,
多用于VOIP相关的模块,是一种文本协议
私有协议,例如qq,微信等
二进制序列化库有protobuf和MessagePack
而市面上几乎所有主流IM APP都是是使用私有协议
=======================================================
socket.io封装了websocke。
WebSocket则提供使用一个TCP连接进行双向通讯的机制,包括网络协议和API,以取代网页和服务器采用HTTP轮询进行双向通讯的机制。
本质上来说,WebSocket是不限于HTTP协议的,但是由于现存大量的HTTP基础设施,代理,过滤,身份认证等等,WebSocket借用HTTP和HTTPS的端口。由于使用HTTP的端口,因此TCP连接建立后的握手消息是基于HTTP的,由服务器判断这是一个HTTP协议,还是WebSocket协议。 WebSocket连接除了建立和关闭时的握手,数据传输和HTTP没丁点关系了