nodejs+nodejs-websocket 實現websocket
阿新 • • 發佈:2019-01-26
第一次發博文,水平有限,供自己記錄學習 和 各位交流研究
1.安裝nodejs
下載nodejs,選擇並下載與自己作業系統相匹配的版本。
點選安裝檔案,然後一直點next就可以,最後點選finish,大功告成。
2.下載nodejs-websocket
開啟cmd,然後將路徑指向專案路徑,然後輸入 npm install nodejs-websocket
下載完成:
如果無法下載並報如下錯誤,解決辦法:在目錄下新建一個名為npm檔案(注意:沒有後綴名!!!,不同的電腦路徑不一致,懂大致意思就行)
如果完成以上兩步,恭喜!!已經準備好實現websocket的環境了~~~
專案目錄結構:
3.編碼
①伺服器端程式碼
server.js
<span style="font-size:14px;">var http = require("http"); var ws = require("nodejs-websocket"); var fs = require("fs"); var server = ws.createServer(function (conn) { console.log("connection sussess"); conn.on("text", function (str) { server.connections.forEach(function (connection) { connection.sendText(str); }); }); }); server.listen(8080);//設定伺服器埠</span>
②客戶端程式碼
client.html
<!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>ChatRoom</title> <script> var ws = null; function getWs() { //ws = new WebSocket("ws://"+window.location.hostname+":8080");/ip訪問 ws = new WebSocket("ws://127.0.0.1:8080");//本地訪問 ws.onopen = function () { console.log("ws open"); } ws.onmessage = function (event) { var div = document.createElement("div"); div.textContent = event.data; document.body.appendChild(div); } ws.onclose = function () { console.log("ws close"); } ws.onerror = function () { console.error("ws error"); } } function sendWs(){ var msg = document.getElementById("msg"); if(msg.value == ''){ alert('聊天內容不能為空'); } else { var date = new Date(); var time = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds(); ws.send("["+time+"] "+msg.value); msg.value = ''; } } </script> </head> <body onload="getWs()"> <input size="50" id="msg" placeholder="請輸入聊天內容"> <input type="submit" value="傳送" id="show" onclick="sendWs()"> </body> </html>
4.執行
①執行服務端
在專案路徑下執行該指令 node server.js
②執行服務端
在瀏覽器中開啟客戶端
放到Apache等Web伺服器軟體中,可以通過ip或域名訪問客戶端
5.結果
若對程式碼有疑問,可另參考nodejs-websocket中的例子--chat
至此websocket就真正的實現!!!
附:程式碼 ~~