使用 nodejs 搭建 websocket 服務器


唔,需要提前准備好 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

啟動即可,如何測試下篇再說。。。


免責聲明!

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



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