即时通讯接口设计?

之前收集过这方面的资料,试着回答一下。首先这是一个轮子,可以使用已经存在的轮子,也可以自己造一个。已经存在的轮子我知道的有国外的OpenFire,国内的TeamTalk。可以上Github找到。如果想自己造轮子的话,也是可以得,题主那是Web的思路,效率非常低,不推荐。我提供一些思路上的建议:连接方式上的选择:使用非阻塞的TCP长连接,从效率上来说,这点很重要。非阻塞可以实现更多的在线用户,长连接可以实现即时。传输数据格式的选择:一般有二进制格式和文本格式,前者可以实现更小的流量,而后者解析起来更容易一些。可以根据自己的需求选择。OpenFire用的是文本格式(xml)而TeamTalk用的是二进制格式。对于二进制格式的,有一个不错的辅助工具:Google的protocol buffer。
■网友
常见的就是基于tcp的长链接方案啊,可以参考xmpp来学习,不过不适合移动端。
■网友
websocket可以干这个事情,长链接,只链接一次就可以了


    推荐阅读