近期項目涉及到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作為服務器地址可以方便的調試代碼。