原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。否则将追究法律责任。
最近老板要求开发一款即时通讯软件,我的天啊,这该怎么办,以前根本就没有这方面的开发经验。
首先想到的就是该用什么协议。常用的http协议肯定是不行的,socket开发方面也没什么经验。因此,最好是能在网上找到开源的项目直接用上。通过查阅资料得知:
即时通讯协议(Instant Messaging),主流的IM协议有4种,
即时消息和存在协议IMPP(Instant Messaging And PresenceProtocol),
存在和即时消息协议PRIM(Presence and Instant Messageing Protocol),
SIP即时消息和存在扩展协议SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions),
可扩展消息与存在协议XMPP(Extensible Messageing and Presence Protocol.
先查到了一篇教程
http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/
这篇文章服务器选型不太好,代码不能直接调试和使用,说明也太少了,后来就没有看下去。
偶然的机会,我在查XMPP的相关资料时,发现下面这个网站还不错
http://xmpp.org/xmpp-software/
列出了使用了XMPP协议的所有服务器、客户端软件,以及相应的框架。上面列出的软件有很多都不太好用。通过一番尝试,最终我选择了openfire 作为即时通讯的服务器端,xmpp-framwork 作为iOS开发的客户端框架。在调试时还需要选择一款现有的IM客户端,mac下好用的有iChat (后改为iMessage) 和 Adium,windows下好用的有Pidgin。我们这个服务器端是自签名的,客户端软件会有安全提示,有些客户端软件甚至直接就不给使用。不过好在自己开发的iOS客户端不会有安全提示警告,因此不会影响用户使用。
至此,技术选型已经没问题了,目前开发得也比较顺畅。
欢迎有相关兴趣的一起交流。