使用 telnet 测试节点 websockets

use*_*098 4 tcp telnet websocket node.js socket.io

我正在使用 ws 库在 Node js 中编写一个基于套接字的服务器,我想测试我的代码是否有效。我已经看到在其他地方使用 telnet 来测试简单的聊天服务器,但是当我启动我的服务器并执行 telnet 127.0.0.1 5000 时,虽然输出显示“连接到本地主机”,但我的服务器没有记录与新连接相关的任何内容。我测试我的服务器是错误的还是我的服务器根本不工作?我的服务器代码如下:

    var WebSocketServer = require('ws').Server
      , http = require('http')
      , express = require('express')
      , app = express()
      , port = process.env.PORT || 5000;

    var server = http.createServer(app);
    server.listen(port);

    var wss = new WebSocketServer({server: server});
    console.log('websocket server created');
    wss.on('connection', function(ws) {
    var id = setInterval(function() {
        ws.send(JSON.stringify(new Date()), function() {  });
    }, 1000);

    console.log('websocket connection open');

    ws.on('close', function() {
        console.log('websocket connection close');
        clearInterval(id);
    });
   });
Run Code Online (Sandbox Code Playgroud)

ale*_*lex 5

您已连接到 HTTP 服务器,但未建立 WebSocket 连接。这就是为什么您的脚本不打印任何内容的原因。

我不确定你可以手动测试 websocket,看看握手

但是有一些类似 telnet 的程序可以与 websocket 一起使用。也许wscat您正在使用的 ws 模块会对此有所帮助。