Skip to content

Commit 7ebd431

Browse files
committed
1 parent cd3680a commit 7ebd431

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

ariadne/asgi/handlers/http.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def __init__(
179179
self.send_timeout = send_timeout
180180
self.ping_interval = ping_interval or self.DEFAULT_PING_INTERVAL
181181
self.encoding = encoding or "utf-8"
182-
self.body = None
182+
self.body = None # type: ignore
183183

184184
_headers: Dict[str, str] = {}
185185
if headers is not None:
@@ -231,7 +231,7 @@ async def _ping(self, send: Send) -> None:
231231
await send(
232232
{
233233
"type": "http.response.body",
234-
"body": self.encode_event(GraphQLServerSentEvent(event="next")),
234+
"body": ":\r\n\r\n".encode(self.encoding),
235235
"more_body": True,
236236
}
237237
)

tests/asgi/test_sse.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@ def get_sse_events(response: Response) -> List[Dict[str, Any]]:
1717
for event in response.text.split("\r\n\r\n"):
1818
if len(event.strip()) == 0:
1919
continue
20-
event, data = event.split("\r\n", 1)
21-
event = event.replace("event: ", "")
22-
data = data.replace("data: ", "")
23-
data = json.loads(data) if len(data) > 0 else None
24-
events.append({"event": event, "data": data})
20+
if "\r\n" not in event:
21+
# ping message
22+
events.append({"event": "", "data": None})
23+
else:
24+
event, data = event.split("\r\n", 1)
25+
event = event.replace("event: ", "")
26+
data = data.replace("data: ", "")
27+
data = json.loads(data) if len(data) > 0 else None
28+
events.append({"event": event, "data": data})
2529
return events
2630

2731

@@ -154,7 +158,7 @@ def test_ping_is_send_sse(sse_client):
154158
assert len(events) == 4
155159
assert events[0]["event"] == "next"
156160
assert events[0]["data"]["data"] == {"testSlow": "slow"}
157-
assert events[1]["event"] == "next"
161+
assert events[1]["event"] == ""
158162
assert events[1]["data"] is None
159163
assert events[2]["event"] == "next"
160164
assert events[2]["data"]["data"] == {"testSlow": "slow"}

0 commit comments

Comments
 (0)