近期項目涉及到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可以根據瀏覽器對通信機制的支持狀況自動地選擇最佳的方式來實現網絡實時應用。git
Socket.IO設計的目標是構建可以在不一樣瀏覽器和移動設備上良好運行的實時應用,如實時分析系統、二進制流數據處理應用、在線聊天室、在線客服系統、評論系統、WebIM等。目前,Socket.IO已經支持主流PC瀏覽器(Safari、Chrome、Firefox等)和移動平臺上的瀏覽器(iOS平臺下的Safari、Android平臺下的基於Webkit的瀏覽器等,並提供一系列開源庫用於服務端和移動應用的開發。能夠說使用Socket.IO框架,咱們能夠方便快速的開發出一套集網頁端,移動應用端,PC端的小型即時通信系統。github
Socket.IO 開源地址:https://github.com/socketio?page=1web