一步一步教您用websocket+nodeJS搭建簡易聊天室(1)

WebSocket是HTML5開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議。

在WebSocket API中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。

瀏覽器通過 JavaScript 向伺服器發出建立 WebSocket 連接的請求,連接建立以後,客戶端和伺服器端就可以通過 TCP 連接直接交換數據。

當你獲取 Web Socket 連接後,你可以通過 send() 方法來向伺服器發送數據,並通過 onmessage 事件來接收伺服器返回的數據。

以下 API 用於創建 WebSocket 對象。

var Socket = new WebSocket(url, [protocol] );n

以上代碼中的第一個參數 url, 指定連接的 URL。第二個參數 protocol 是可選的,指定了可接受的子協議。

通過本系列教程,我將教大家從零開始用websocket+nodeJS搭建一個簡易的聊天室

首先我們擼個最簡單的Demo讓大家感受一家websocket的 模樣。

本樣例實現功能:

點擊發送按鈕獲取文本框的內容並將它發送到服務端,

服務端將這條消息原樣返回並顯示在頁面。

為了便於新手理解,服務端介面使用websocket官方服務

<!doctype html>n<html>nt<head>ntt<meta charset="utf-8">ntt<title>websocket</title>nt</head>nt<body>ntt<h1>echo test</h1>ntt<input id="sendText" type="text" />ntt<button id="sendBtn">發送</button>ntt<div id="recv"></div>nt</body>nt<script type="text/javascript">ntt/*nttt本樣例實現功能:nttt點擊發送按鈕獲取文本框的內容並將它發送到服務端,nttt服務端將這條消息原樣返回並顯示在頁面。nttt為了便於新手理解,服務端介面使用websocket官方服務ntt*/nttvar websocket=new WebSocket("ws://echo.websocket.org/");//創建一個websocket連接,服務端使用websocket官方服務nttwebsocket.onopen=function(){ //websocket服務打開ntttconsole.log("websocket open");ntttdocument.getElementById("recv").innerHTML="connected";ntt}nttwebsocket.onclose=function(){ //websocket服務關閉ntttconsole.log("websocket close");ntttntt}nttwebsocket.onmessage=function(e){ //websocket服務接收到消息ntttconsole.log(e.data);ntttdocument.getElementById("recv").innerHTML=e.data;//將消息顯示在消息列表ntt}nttdocument.getElementById("sendBtn").onclick=function(){ntttvar txt=document.getElementById("sendText").value;ntttwebsocket.send(txt);//將文本輸入框中的內容發送到服務端ntt}nt</script>nn</html>n

運行截圖:

從下節開始我們將開始用nodeJS在本地搭建屬於自己的服務端。

推薦閱讀:

手機遊戲伺服器端用node.js 還是用go,fibjs之類等比較好?
package-lock.json 需要寫進 .gitignore 嗎?
為什麼nodejs不需要IO功能?
《深入淺出Node.js》《Node.js 實戰(雙色)》《了不起的Node.js》 這三本書那本書比較好呢?

TAG:HTML5 | WebSocket | Nodejs |