Mercurial > code > home > repos > homeauto
changeset 1708:3cfd3693a4ac
quick fixes for cyclone sse
author | drewp@bigasterisk.com |
---|---|
date | Wed, 17 Nov 2021 14:25:14 -0800 |
parents | 4a6fffe6a994 |
children | 4e33b979c3fc |
files | service/environment/environment.py service/environment/patch_cyclone.py service/environment/requirements.txt |
diffstat | 3 files changed, 28 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/service/environment/environment.py Sat Oct 23 13:23:02 2021 -0700 +++ b/service/environment/environment.py Wed Nov 17 14:25:14 2021 -0800 @@ -15,8 +15,9 @@ from patchablegraph import PatchableGraph, CycloneGraphEventsHandler, CycloneGraphHandler from twilight import isWithinTwilight from standardservice.logsetup import log, verboseLogging - +from patch_cyclone import patch_sse from rdfdoc import Doc +patch_sse() ROOM = Namespace("http://projects.bigasterisk.com/room/") DEV = Namespace("http://projects.bigasterisk.com/device/") @@ -27,7 +28,7 @@ class CycloneGraphEventsHandlerWithCors(CycloneGraphEventsHandler): def flush(self): - self.set_header("Access-Control-Allow-Origin", "*") + self.set_header(b"Access-Control-Allow-Origin", b"*") return CycloneGraphEventsHandler.flush(self)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/service/environment/patch_cyclone.py Wed Nov 17 14:25:14 2021 -0800 @@ -0,0 +1,20 @@ + + +def patch_sse(): + from cyclone import escape + import cyclone.sse + def new_sendEvent(self, message, event=None, eid=None, retry=None): + if isinstance(message, dict): + message = escape.json_encode(message) + if isinstance(message, str): + message = message.encode("utf-8") + assert isinstance(message, bytes) + if eid: + self.transport.write(b"id: " + eid.encode("utf-8") + b"\n") + if event: + self.transport.write(b"event: " + event + b"\n") + if retry: + self.transport.write(b"retry: " + retry.encode("utf-8") + b"\n") + self.transport.write(b"data: " + message + b"\n\n") + + cyclone.sse.SSEHandler.sendEvent = new_sendEvent
--- a/service/environment/requirements.txt Sat Oct 23 13:23:02 2021 -0700 +++ b/service/environment/requirements.txt Wed Nov 17 14:25:14 2021 -0800 @@ -1,15 +1,16 @@ -cyclone +cyclone==1.3 docopt ipdb service_identity twisted +python-dateutil -git+http://github.com/drewp/rdflib-jsonld.git@0a560c9f1aa7c7bbb80fea389e1f5fa51d1287f8#egg=rdflib_jsonld +# git+http://github.com/drewp/rdflib-jsonld.git@0a560c9f1aa7c7bbb80fea389e1f5fa51d1287f8#egg=rdflib_jsonld -git+http://github.com/drewp/scales.git@448d59fb491b7631877528e7695a93553bfaaa93#egg=scales +# git+http://github.com/drewp/scales.git@448d59fb491b7631877528e7695a93553bfaaa93#egg=scales cycloneerr -patchablegraph==0.11.0 +patchablegraph==0.12.0 rdfdb==0.21.0 standardservice==0.6.0