mirror of
https://github.com/django/daphne.git
synced 2024-11-25 17:23:43 +03:00
Send order
keys with WebSocket packets as per ASGI spec update
This commit is contained in:
parent
eaa762c9e3
commit
d25bea1543
|
@ -22,6 +22,7 @@ class WebSocketProtocol(WebSocketServerProtocol):
|
||||||
|
|
||||||
def onConnect(self, request):
|
def onConnect(self, request):
|
||||||
self.request = request
|
self.request = request
|
||||||
|
self.packets_received = 0
|
||||||
try:
|
try:
|
||||||
# Sanitize and decode headers
|
# Sanitize and decode headers
|
||||||
clean_headers = {}
|
clean_headers = {}
|
||||||
|
@ -45,6 +46,7 @@ class WebSocketProtocol(WebSocketServerProtocol):
|
||||||
"client": [self.transport.getPeer().host, self.transport.getPeer().port],
|
"client": [self.transport.getPeer().host, self.transport.getPeer().port],
|
||||||
"server": [self.transport.getHost().host, self.transport.getHost().port],
|
"server": [self.transport.getHost().host, self.transport.getHost().port],
|
||||||
"reply_channel": self.reply_channel,
|
"reply_channel": self.reply_channel,
|
||||||
|
"order": 0,
|
||||||
}
|
}
|
||||||
except:
|
except:
|
||||||
# Exceptions here are not displayed right, just 500.
|
# Exceptions here are not displayed right, just 500.
|
||||||
|
@ -63,14 +65,17 @@ class WebSocketProtocol(WebSocketServerProtocol):
|
||||||
|
|
||||||
def onMessage(self, payload, isBinary):
|
def onMessage(self, payload, isBinary):
|
||||||
logger.debug("WebSocket incoming packet on %s", self.reply_channel)
|
logger.debug("WebSocket incoming packet on %s", self.reply_channel)
|
||||||
|
self.packets_received += 1
|
||||||
if isBinary:
|
if isBinary:
|
||||||
self.channel_layer.send("websocket.receive", {
|
self.channel_layer.send("websocket.receive", {
|
||||||
"reply_channel": self.reply_channel,
|
"reply_channel": self.reply_channel,
|
||||||
|
"order": self.packets_received,
|
||||||
"bytes": payload,
|
"bytes": payload,
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
self.channel_layer.send("websocket.receive", {
|
self.channel_layer.send("websocket.receive", {
|
||||||
"reply_channel": self.reply_channel,
|
"reply_channel": self.reply_channel,
|
||||||
|
"order": self.packets_received,
|
||||||
"text": payload.decode("utf8"),
|
"text": payload.decode("utf8"),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -96,6 +101,7 @@ class WebSocketProtocol(WebSocketServerProtocol):
|
||||||
del self.factory.reply_protocols[self.reply_channel]
|
del self.factory.reply_protocols[self.reply_channel]
|
||||||
self.channel_layer.send("websocket.disconnect", {
|
self.channel_layer.send("websocket.disconnect", {
|
||||||
"reply_channel": self.reply_channel,
|
"reply_channel": self.reply_channel,
|
||||||
|
"order": self.packets_received + 1,
|
||||||
})
|
})
|
||||||
self.factory.log_action("websocket", "disconnected", {
|
self.factory.log_action("websocket", "disconnected", {
|
||||||
"path": self.request.path,
|
"path": self.request.path,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user