Node.js Mac:如何确定哪些WebSocket是打开的?
我正在尝试连接到tomcat客户端创建的websocket。 我看到的是ws://localhost:8080/cs webapp/ws,但当我尝试连接到它时,我得到了一个302错误。此处的其他问题/答案不适用:( 我正在使用以下命令获取我的机器上打开的端口列表,我看到的与tomcat相关的是: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
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'
是什么?