Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用telnet测试节点WebSocket_Node.js_Tcp_Websocket_Socket.io_Telnet - Fatal编程技术网

Node.js 使用telnet测试节点WebSocket

Node.js 使用telnet测试节点WebSocket,node.js,tcp,websocket,socket.io,telnet,Node.js,Tcp,Websocket,Socket.io,Telnet,我正在使用ws-library在Node js中编写一个基于套接字的服务器,我想测试我的代码是否有效。我在别处见过telnet用于测试简单聊天服务器,但当我启动服务器并执行telnet 127.0.0.1 5000时,尽管输出显示“已连接到本地主机”,但我的服务器不会记录任何与新连接相关的内容。我是测试服务器错误还是服务器根本不工作?我的服务器代码如下: var WebSocketServer = require('ws').Server , http = require('

我正在使用ws-library在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);
    });
   });

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

我不确定您是否可以手动测试websocket,请参阅


但也有一些类似telnet的程序可以与websocket一起工作。您正在使用的ws-module中的
wscat
可能会对此有所帮助。

这个小工具为我完成了任务:


(对于不使用npm的人)

我发现它很有用。如果您正在测试本地主机服务器,只需在硬盘上创建一个websocket.index文件。代码在页面底部。

看起来您已经解决了这个问题,但是WebSocket不仅仅是简单的旧TCP套接字。这是一个完整的应用层协议。它有很多功能,因此您无法使用Telnet客户端进行测试。有没有办法从iOS应用程序连接到套接字?传递ip地址和端口,但连接不成功(以下是我的代码:CFStreamCreatePairWithSocketToHost(NULL,(CFStringRef)@“122.38.1.3”、91、&readStream和&writeStream);)
brew tap pascaliske/telsocket
brew update
brew install telsocket
telsocket -url ws://127.0.0.1:50000