connect
ハンドラにウェブソケットクライアントのIPアドレスをmessage.content["client"]
として取得します。このコードはreceive
ハンドラで失敗します。 receive
ハンドラにクライアントのIPアドレスを取得する方法はありますか?DjangoチャンネルのIPアドレスを取得する - 受信ハンドラで
編集: 'dphane/ws_protocol.py' は、
、クラスWebSocketProtocol
に私はonconnect
で、コードが
onmessage
のように、コードが
ある
self.request_info = {
"path": self.unquote(self.path),
"headers": self.clean_headers,
"query_string": self._raw_query_string, # Passed by HTTP protocol
"client": self.client_addr,
"server": self.server_addr,
"reply_channel": self.reply_channel,
"order": 0,
}
...
...
self.channel_layer.send("websocket.connect", self.request_info)
であることがわかり
if isBinary:
self.channel_layer.send("websocket.receive", {
"reply_channel": self.reply_channel,
"path": self.unquote(self.path),
"order": self.packets_received,
"bytes": payload,
})
else:
self.channel_layer.send("websocket.receive", {
"reply_channel": self.reply_channel,
"path": self.unquote(self.path),
"order": self.packets_received,
"text": payload.decode("utf8"),
})
Dphaneがその情報をで与えていないため、私はクライアントのIPを取得していませんハンドラ。
あなたはrequest.META [「REMOTE_ADDR」]を使用してそれを修正することができ