以前大多数im都使用私有协议, 后来发展出开放的xmpp, 使用xml通讯, 不用说消耗网络资源太大了。
我本来想使用protobuf自定义一套私有协议,但想到工作量还是太大,然后发现现在mqtt协议很热门,特别是物联网使用比较多,不过也可以用来做im消息推送服务器。
MQTT开源项目
上github搜索golang的mqtt服务器,找到最多star的surgemq,不过一看居然三年没有更新了,作者也不大可能继续维护,在其Issues的一个问题中找到作者的答复说推荐另一个人fork的项目volantmq,不过在网上没有搜索到过于这个项目的文章,所以还是放弃了。
最后发现mosquitto,这是一个eclipse项目组用c语言写的, 更新比较频繁,虽然网上讨论说也有是点问题,但还是暂选择这个项目做为mqtt服务器。
至于客户端,先考虑IOS上的实现,当然是找swift语言编写的,因为实在恶心objc的语法,找到这个CocoaMQTT应该还不错。
安装mosquitto
暂时还用不着改mosquitto代码,直接安装可执行程序就行。
mac下: