1. 程式人生 > >nodejs+nodejs-websocket 實現websocket

nodejs+nodejs-websocket 實現websocket

第一次發博文,水平有限,供自己記錄學習 和 各位交流研究大笑

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就真正的實現!!!

附:程式碼 ~~