我正在使用Network.WebSocket
库。我在WS.requestHeaders . WS.pendingRequest
上尝试了PendingConnection
来获取连接请求信息。但是,它似乎没有客户端IP信息,只有Host
密钥中的服务器IP信息。以下示例输出:
[("Upgrade","websocket"),("Sec-WebSocket-Extensions","permessage-deflate;
client_max_window_bits"),("Sec-WebSocket-Key","<taken out for SO post>"),
("Connection","Upgrade"),("Sec-WebSocket-Version","13"),("Host","localhost:8080")]
在运行Network.Websocket
(我在Snap
monad中使用runWebSocketsSnap
)运行时,获取“客户端IP”信息的好方法是什么。我想在出错的情况下记录它。
答案 0 :(得分:2)
runWebSocketsSnap
只是一个常规Snap
应用,因此您可以使用rqRemoteAddr
获取远程IP地址:
do
addr <- getsRequest rqRemoteAddr
runWebSocketsSnap $ \pending -> ...