aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/ws/rst.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysite/views/ws/rst.py')
-rw-r--r--pysite/views/ws/rst.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/pysite/views/ws/rst.py b/pysite/views/ws/rst.py
new file mode 100644
index 00000000..c85c10a0
--- /dev/null
+++ b/pysite/views/ws/rst.py
@@ -0,0 +1,27 @@
+# coding=utf-8
+import logging
+
+from docutils.core import publish_parts
+from geventwebsocket.websocket import WebSocket
+
+from pysite.websockets import WS
+
+
+class RSTWebsocket(WS):
+ path = "/rst"
+ name = "ws.rst"
+
+ def __init__(self, socket: WebSocket):
+ super().__init__(socket)
+ self.log = logging.getLogger()
+
+ def on_open(self):
+ self.log.debug("RST | WS opened.")
+ self.send("Hey, welcome!")
+
+ def on_message(self, message):
+ self.log.debug(f"RST | Message: {message}")
+ self.send(publish_parts(source=message, writer_name="html5")["html_body"])
+
+ def on_close(self):
+ self.log.debug("RST | WS closed.")