annotate service/environment/patch_cyclone.py @ 1708:3cfd3693a4ac

quick fixes for cyclone sse
author drewp@bigasterisk.com
date Wed, 17 Nov 2021 14:25:14 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1708
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
1
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
2
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
3 def patch_sse():
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
4 from cyclone import escape
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
5 import cyclone.sse
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
6 def new_sendEvent(self, message, event=None, eid=None, retry=None):
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
7 if isinstance(message, dict):
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
8 message = escape.json_encode(message)
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
9 if isinstance(message, str):
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
10 message = message.encode("utf-8")
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
11 assert isinstance(message, bytes)
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
12 if eid:
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
13 self.transport.write(b"id: " + eid.encode("utf-8") + b"\n")
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
14 if event:
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
15 self.transport.write(b"event: " + event + b"\n")
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
16 if retry:
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
17 self.transport.write(b"retry: " + retry.encode("utf-8") + b"\n")
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
18 self.transport.write(b"data: " + message + b"\n\n")
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
19
3cfd3693a4ac quick fixes for cyclone sse
drewp@bigasterisk.com
parents:
diff changeset
20 cyclone.sse.SSEHandler.sendEvent = new_sendEvent