用Node.js編寫多人實時在線聊天室

在Mike和Marc合著的《Node.js實戰》書中提供了一個聊天室demo,但書中所用Node版本太舊,代碼已不能運行。因此本示例代碼基於Node.js當前最新版本6.11.0修改而成,代碼地址:https://github.com/foupwang/chatroomsnode

代碼運行方法:
一、下載代碼到本地,進入根目錄,先安裝第三方模塊,命令:npm install
二、啓動服務器,命令:node server.js
三、打開瀏覽器,輸入地址:http://127.0.0.1:3000/
四、開始文字聊天或輸入命令建立新聊天室;git

 

聊天室實現瞭如下功能:
一、給同一房間全部用戶發送消息;
二、顯示可用房間列表;
三、輸入命令加入已有房間或建立新房間;
四、新用戶進入房間通知;
五、輸入命令修改用戶暱稱;github

該Node.js聊天室代碼實現雖簡單,卻展現了構建實時Web程序所需的重要組件和基本技術。不但能看到Node如何同時處理傳統的HTTP數據(好比靜態文件)和實時數據(聊天消息),還能看到Node程序如何組織、依賴項如何管理,以及一個端口同時處理HTTP和WebSocket。npm

背景知識
一、什麼是WebSocket?
WebSocket是基於TCP的一種新的網絡協議,它實現了瀏覽器與服務器之間的雙向通訊(容許服務器主動發送信息給客戶端)。在WebSocket協議出現以前,雙向通訊是經過多個HTTP連接輪詢實現的,致使了效率低下等一系列問題。一個更簡單的解決方案是使用單個TCP鏈接雙向通訊,這就是WebSocket協議所提供的功能。
二、什麼是Socket.IO?
大多數狀況下,只有兼容HTML5的現代瀏覽器才支持WebSocket,也就是說,某些瀏覽器可能不支持WebSocket。而Socket.IO作了基於WebSocket及其它傳輸方式的封裝,它提供了一個抽象層,若是瀏覽器沒有實現WebSocket,Socket.IO會自動啓用一個備選方案,而對外提供的API仍是同樣的。瀏覽器

相關文章
相關標籤/搜索