搭建WebSocket服务

因为测试需求需要,以前并没有接触过websocket协议的测试,为了正式测试时不卡壳所以决定搭建个websocket服务先熟悉熟悉整体流程

网上找了N多个websocket搭建教程,发现没有一个教程是能够顺利进行下去的,浪费了一天时间不说搞的自己心态也有点崩,回家后自己又摸索了一番,将整个搭建流程完全简化,再经过多次搭建测试后便有了这篇文章,总体过程为:1、安装nodejs环境;2、配置nodejs环境变量;3、安装nodejs-websocket服务;4、开放websocket端口;5、启动websocket服务;6、测试。详细过程如下:

安装nodejs环境

执行wget https://nodejs.org/download/release/v16.13.0/node-v16.13.0-linux-x64.tar.gz下载nodejs包
file

解压nodejs包

执行tar -xvf node-v16.13.0-linux-x64.tar.gz将nodejs包解压
file

配置nodejs环境变量

执行vim /etc/profile进入编辑模式;将下面的内容复制进去

# setting nodejs path
export NODE_HOME=/opt/node/node-v15.5.0-linux-x64(此处路径改为自己的nodejs路径)
export PATH=$NODE_HOME/bin:$PATH

file

node版本信息查看

安装结束后看可以通过node -vnpm -v查看下版本信息
file

安装nodejs-websocket服务

执行npm install nodejs-websocket安装服务
file
如果提示图片中的错误,按照提示执行npm install -g npm@9.4.2升级下npm的版本后再次安装即可
file

启动服务端websocket服务

本地编写好server服务后将js文件上传到服务器,执行node server.js后看到以下信息代表成功!
file

连接测试

可以通过在线的websocket测试地址进行测试,比如:http://www.websocket-test.com/
客户端发送消息:
file
服务端接收消息:
file


server.js:


var ws = require("nodejs-websocket");
console.log("WebSocket开始连接...");

var onlinecount = 0;
var server = ws.createServer(function (conn) {

    //监听文本
    conn.on("text", function (str) {
        console.log("收到的信息为:" + str)

        server.connections.forEach(function (conn) {
            conn.sendText(str);
        });
    })

    //监听当前链接是否关闭
    conn.on("close", function (code, reason) {

        onlinecount -= 1;
        online();

        console.log("关闭连接");
    });

    //监听当前连接是否发生错误
    conn.on("error", function (code, reason) {

        onlinecount -= 1;
        online();

        console.log("异常关闭")
    });

    onlinecount += 1;
    online();
}).listen(3000, '替换成自己的内网IP地址');

//在线人数
function online() {

    server.connections.forEach(function (conn) {
        conn.sendText("###online###" + onlinecount);
    });
}

console.log("WebSocket连接成功");