使用 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

启动即可,如何测试下篇再说。。。

posted @   不是豆豆  阅读(1208)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2018-01-22 [转]设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
友情链接:迷途


点击右上角即可分享
微信分享提示