使用telnet测试节点websockets

时间:2014-01-11 05:18:50

标签: node.js tcp websocket socket.io telnet

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

    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);
    });
   });

3 个答案:

答案 0 :(得分:2)

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

我不确定您是否可以手动测试websocket,请查看handshake

但是有一些与websocket一起使用的类似telnet的程序。也许来自您正在使用的ws模块的wscat将有助于此。

答案 1 :(得分:0)

这个小工具为我完成了这项工作:https://github.com/lafikl/telsocket

brew tap pascaliske/telsocket
brew update
brew install telsocket
telsocket -url ws://127.0.0.1:50000

(对于不使用npm的人)

答案 2 :(得分:0)

我发现a blog bost a year ago很有用。如果要测试本地服务器,只需在硬盘驱动器上创建一个websocket.index文件。代码在页面底部。