import json
from autobahn.twisted.websocket import WebSocketServerProtocol
from autobahn.twisted.websocket import WebSocketServerFactory
from paradrop.base.output import out
[docs]class StatusSockJSProtocol(WebSocketServerProtocol):
def __init__(self, factory):
WebSocketServerProtocol.__init__(self)
self.factory = factory
[docs] def onOpen(self):
out.info('sockjs /status connected')
[docs] def onMessage(self, data, isBinary):
if (data == 'refresh'):
status = self.factory.system_status.getStatus()
self.sendMessage(json.dumps(status))
[docs] def onClose(self, wasClean, code, reason):
out.info('sockjs /status disconnected')
[docs]class StatusSockJSFactory(WebSocketServerFactory):
def __init__(self, system_status):
WebSocketServerFactory.__init__(self)
self.system_status = system_status
[docs] def buildProtocol(self, addr):
return StatusSockJSProtocol(self)