Dart 我可以从WebSocketConnection实例提取客户端的IP/端口吗?

Dart 我可以从WebSocketConnection实例提取客户端的IP/端口吗?,dart,Dart,是否有任何方法可以让给定的WebSocketConnection实例提取它所代表的客户端的IP/端口?我知道实现(即\u WebSocketConnectionBase)有一个套接字作为私有变量,但我无法破解它。有什么解决办法吗 我需要此功能的环境是:我有一个处理web套接字连接的服务器,我希望将客户端的IP存储在其web套接字旁边。我实例化我的服务器,如下所示: var server = new HttpServer(); var wsHandler = new WebSocketHandle

是否有任何方法可以让给定的
WebSocketConnection
实例提取它所代表的客户端的IP/端口?我知道实现(即
\u WebSocketConnectionBase
)有一个
套接字作为私有变量,但我无法破解它。有什么解决办法吗

我需要此功能的环境是:我有一个处理web套接字连接的服务器,我希望将客户端的IP存储在其web套接字旁边。我实例化我的服务器,如下所示:

var server = new HttpServer();
var wsHandler = new WebSocketHandler();

wsHandler.onOpen = this.subscribeUser;
server.addRequestHandler((req) => req.path == "/ws", wsHandler.onRequest);
...
subscribeUser(WebSocketConnection user){...}

是否有可能在代码中的某个地方侵入此功能?提前非常感谢

您可以尝试对WebSocketHandler进行扩展实现,并从这里获取请求。例如:

类betterWebSocket实现WebSocketHandler{
WebSocketHandler_wsHandler=新的WebSocketHandler();
void onRequest(HttpRequest请求、HttpResponse响应){
打印(request.connectionInfo.remoteHost);//将远程设备的IP打印到屏幕上
_onRequest(请求,响应);
}
void set onOpen(回调(WebSocketConnection)){
_wsHandler.onOpen=回调;
}
}
您可以将此类用作普通WebSocketHandler:

void main(){
HttpServer服务器=新的HttpServer();
betterWebSocket wsHandler=新betterWebSocket();
server.addRequestHandler((req)=>req.path==“/”,wsHandler.onRequest);
wsHandler.onOpen=(WebSocketConnection连接){
打印(“新连接”);
conn.onMessage=(消息){
打印(“消息为$message”);
};
conn.onClosed=(int状态,字符串原因){
打印(“因$REASURE以$status结束”);
};
监听服务器('127.0.0.1',20024);
};

<>代码>如果<代码> Socket 变量是私有的,并且您没有其他方法访问它(需要),我会考虑提交一个bug。但是我不确定没有其他方法来获取您想要的信息。是的,请做一个bug。这应该是不可能的,而不是求助于黑客。