Socket.io。如何检测传入数据

Socket.io。如何检测传入数据,socket.io,Socket.io,对于socket.io,除了作为“事件”类型发出的数据外,如何侦听传入数据?我希望读取并检测ProxyProtocol字符串。我做了一些研究。代理字符串似乎与初始http请求一起在GET命令的另一行上发送,如下所示: PROXY TCP4 192.168.0.1 192.168.0.11 56324 80\r\n GET / HTTP/1.1\r\n Host: 192.168.0.11\r\n \r\n 您可以在中看到这一点 因此,这将需要由http服务器来处理,该服务器将输入启动web

对于socket.io,除了作为“事件”类型发出的数据外,如何侦听传入数据?我希望读取并检测ProxyProtocol字符串。

我做了一些研究。代理字符串似乎与初始http请求一起在GET命令的另一行上发送,如下所示:

PROXY TCP4 192.168.0.1 192.168.0.11 56324 80\r\n
GET / HTTP/1.1\r\n
Host: 192.168.0.11\r\n
\r\n  
您可以在中看到这一点


因此,这将需要由http服务器来处理,该服务器将输入启动webSocket的初始http请求。这发生在建立webSocket之前的初始连接阶段。所以,这不是你事后听的东西。需要对socket.io代码进行一些研究,以确定它是否已经将该信息存储在socket.io
socket
上,或者您如何连接到初始http处理程序以查看该信息。我会做更多的研究。

你是什么意思
ProxyProtocol
string?已建立的socket.io套接字只发送一种数据报。建立socket.io连接从http请求开始,因为webSocket工作My socket.io服务器位于负载平衡器后面,负载平衡器发送ProxyProtocol字符串,其结构类似于“PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n”。它不是用任何HTTP包装的,只是一个字符串。不确定是否可能。如何发送该字符串?它不能在webSocket上发送该消息,因为这将违反协议。您甚至没有在向服务器发送的常规浏览器https请求(不是webSocket请求)上获得HIHI吗?你确定你的https服务器正在监听吗?哇,谢谢你,伙计!你的回答确实给了我一些想法。我现在正在研究如何从nodejshttplayerhi jfriend00获取它,我尝试从HTTP层获取它。但它不起作用。你能看到上面的编辑吗?@ngzhongcai-检查一下,这表明你可以从
socket.handshake.headers['x-forwarded-for']| | socket.handshake.address.address
获取远程地址,其中
socket
是socket.io socket。嗨,jfriend00,它有点俗气。AWS ELB。代理协议。Socket.Io。