diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-01-04 17:16:12 +0200 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-01-04 17:16:12 +0200 |
| commit | f5494d9233d6f9967c614eef23dee1f29af056c9 (patch) | |
| tree | 763da6c98efe56acb342aa09d8c4866624c6f32a /src/server/rz_api_websocket.py | |
| parent | f1dd537689307329dfe42c88ee2e8fda3355eb84 (diff) | |
rhizi_api breakup: common, rest & websocket files
Diffstat (limited to 'src/server/rz_api_websocket.py')
| -rw-r--r-- | src/server/rz_api_websocket.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/server/rz_api_websocket.py b/src/server/rz_api_websocket.py new file mode 100644 index 00000000..15243db6 --- /dev/null +++ b/src/server/rz_api_websocket.py @@ -0,0 +1,42 @@ +""" +Rhizi websocket web API +""" + +import logging +from socketio.mixins import BroadcastMixin +from socketio.namespace import BaseNamespace + + +log = logging.getLogger('rhizi') + +class WebSocket_Graph_NS(BaseNamespace, BroadcastMixin): + """ + Rhizi '/graph' websocket namespace + """ + + def __init__(self, *args, **kw): + super(WebSocket_Graph_NS, self).__init__(*args, **kw) + + def multicast_msg(self, msg_name, *args): + self.socket.server.log_multicast(msg_name) + super(WebSocket_Graph_NS, self).broadcast_event_not_me(msg_name, *args) + + def _log_conn(self, prefix_msg): + rmt_addr = self.environ['REMOTE_ADDR'] + rmt_port = self.environ['REMOTE_PORT'] + sid = self.environ['socketio'].sessid + log.info('ws: %s: sid: %s, remote-socket: %s:%s' % (prefix_msg, sid, rmt_addr, rmt_port)) + + def recv_connect(self): + self._log_conn('conn open') + + def recv_disconnect(self): + self._log_conn('conn close') + + def on_diff_commit__topo(self, topo_diff): + log.info('ws: rx: topo diff: ' + str(topo_diff)) + self.multicast_msg('diff_commit__topo', topo_diff) + + def on_diff_commit__attr(self, attr_diff): + log.info('ws: rx: attr diff: ' + str(attr_diff)) + self.multicast_msg('diff_commit__attr', attr_diff) |
