Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 Mac:如何确定哪些WebSocket是打开的?_Node.js_Typescript_Websocket - Fatal编程技术网

Node.js Mac:如何确定哪些WebSocket是打开的?

Node.js Mac:如何确定哪些WebSocket是打开的?,node.js,typescript,websocket,Node.js,Typescript,Websocket,我正在尝试连接到tomcat客户端创建的websocket。 我看到的是ws://localhost:8080/cs webapp/ws,但当我尝试连接到它时,我得到了一个302错误。此处的其他问题/答案不适用:( 我正在使用以下命令获取我的机器上打开的端口列表,我看到的与tomcat相关的是: sudo lsof -PiTCP -sTCP:LISTEN java localhost:21179 (LISTEN) java *:63862 (LISTEN) java

我正在尝试连接到tomcat客户端创建的websocket。 我看到的是ws://localhost:8080/cs webapp/ws,但当我尝试连接到它时,我得到了一个302错误。此处的其他问题/答案不适用:(

我正在使用以下命令获取我的机器上打开的端口列表,我看到的与tomcat相关的是:

sudo lsof -PiTCP -sTCP:LISTEN
java      localhost:21179 (LISTEN)
java      *:63862 (LISTEN)
java      *:49190 (LISTEN)
java      *:8080 (LISTEN)
java       *:8009 (LISTEN)
java       TCP localhost:8005 (LISTEN)
java        TCP *:58083 (LISTEN)
有了以上信息,有没有办法确定哪个是websocket端口以及如何连接它

我尝试过的代码片段有:

#!/usr/bin/env node
var WebSocketClient = require('websocket').client;

var client = new WebSocketClient();

client.on('connectFailed', function(error) {
    console.log('Connect Error: ' + error.toString());
});

client.on('connect', function(connection) {
    console.log('WebSocket Client Connected');
    connection.on('error', function(error) {
        console.log("Connection Error: " + error.toString());
    });
    connection.on('close', function() {
        console.log('echo-protocol Connection Closed');
    });
    connection.on('message', function(message) {
        if (message.type === 'utf8') {
            console.log("Received: '" + message.utf8Data + "'");
        }
    });
});

//client.connect('ws://localhost:8080/cs-webapp/ws', 'echo-protocol');
client.connect('ws://localhost:63862', 'echo-protocol');
//client.connect('ws://localhost:8080/cs-webapp/ws', 'echo-protocol');

没有特定的系统功能告诉您侦听服务器正在侦听webSocket连接。从系统的角度来看,它只是一个侦听服务器,没有指示它正在侦听什么协议。您必须使用webSocket客户端连接到它,然后查看发生了什么(如果行为与webSocket服务器是否一致).是的,正确。但是从列出的侦听端口来看,ws-host:端口应该是什么样子?有什么想法吗?根据我尝试连接到的端口,我会得到套接字hungup或302错误代码…ws-host没有特定的外观。302错误代码表示它至少理解HTTP(这是所有webSocket连接的起点)。它将您重定向到什么位置?您是否尝试连接到所有其他位置?仅供参考,302可能正试图将您重定向到TLS,例如
wss://localhost:63862
。您的
客户端.connect()调用中的
'echo-protocol'
是什么?