唔,需要提前准備好 nodejs 和 npm 的環境,然后使用下面命令安裝相關依賴包:
npm install ws npm install http npm install url
其它也不知道說點啥,直接上代碼吧:
// 代碼參考自:https://github.com/websockets/ws#usage-examples console.log("WebSocket 服務啟動中..."); var http = require('http'); var WebSocket = require('ws'); var url = require('url'); var httpServer = http.createServer(); var webSocketServer = new WebSocket.Server({ // 若不在 http 服務下獨立啟動 websocket 服務器,可在此設置監聽端口 // port: 8010 // 若在 http 服務下監聽請求,則將 noServer 設置為 true noServer: true }); webSocketServer.on('connection', function(client) { client.on('message', function(message) { console.log('來自客戶端的消息:%s', message); client.send('服務端接收到的消息:' + message); }); }); httpServer.on('upgrade', function upgrade(request, socket, head) { var pathname = url.parse(request.url).pathname; // websocket 的監聽路徑 if (pathname === '/ws') { webSocketServer.handleUpgrade(request, socket, head, function done(ws) { webSocketServer.emit('connection', ws, request); }); } else { socket.destroy(); } }); // http 服務的監聽端口 httpServer.listen(8010); console.log("WebSocket 服務啟動完成,監聽連接中...");
然后將以上代碼保存為文件 server.js,使用下面命令:
node server.js
啟動即可,如何測試下篇再說。。。