近期項目涉及到IM功能,使用到一個好用的支援WebSocket的IM開源架構:Socket.IO ;它是一個完全由JavaScript實作、基于Node.js、支援WebSocket的協定用于實時通信、跨平台的開源架構,它包括了用戶端的JavaScript和伺服器端的Node.js。Socket.IO除了支援WebSocket通訊協定外,還支援許多種輪詢(Polling)機制以及其它實時通信方式,并封裝成了通用的接口,并且在服務端實作了這些實時機制的相應代碼。Socket.IO實作的Polling通信機制包括Adobe Flash Socket、AJAX長輪詢、AJAX multipart streaming、持久Iframe、JSONP輪詢等。Socket.IO能夠根據浏覽器對通訊機制的支援情況自動地選擇最佳的方式來實作網絡實時應用。
Socket.IO設計的目标是建構能夠在不同浏覽器和移動裝置上良好運作的實時應用,如實時分析系統、二進制流資料處理應用、線上聊天室、線上客服系統、評論系統、WebIM等。目前,Socket.IO已經支援主流PC浏覽器(Safari、Chrome、Firefox等)和移動平台上的浏覽器(iOS平台下的Safari、Android平台下的基于Webkit的浏覽器等,并提供一系列開源庫用于服務端和移動應用的開發。可以說使用Socket.IO架構,我們可以友善快速的開發出一套集網頁端,移動應用端,PC端的小型即時通訊系統。
Socket.IO 開源位址:https://github.com/socketio?page=1

Socket.IO-Client-Swift : 是用Swift編寫的基于Socket.IO機制的開源項目,可以讓我們快速的在iOS項目中內建IM功能。Swift工程中可以使用cocoapods導入,OC項目最好手工導入使用"<項目名>-Swift.h"檔案,否則很有可能導緻cocoapods配置檔案出錯。項目的具體使用方法作者在其GitHub首頁上已給出說明。如果遇到使用問題可以在 http://stackoverflow.com/search?q=socket.io-client-swift 找到一些答案。
http://www.workerman.net:2123/一個支援webSocket的開放調試平台,用:http://www.workerman.net:2120作為伺服器位址可以友善的調試代碼。