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


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

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

 

聊天室實現了以下功能:
1、給同一房間所有用戶發送消息;
2、顯示可用房間列表;
3、輸入命令加入已有房間或創建新房間;
4、新用戶進入房間通知;
5、輸入命令修改用戶昵稱;

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM