mirror of
https://github.com/avatao-content/baseimage-tutorial-framework
synced 2024-11-22 18:51:31 +00:00
Make TFWServer FSMAware
This commit is contained in:
parent
ca09e868f1
commit
7fb5a37831
@ -9,20 +9,23 @@ from tornado.web import Application
|
|||||||
from tfw.networking.event_handlers import ServerUplinkConnector
|
from tfw.networking.event_handlers import ServerUplinkConnector
|
||||||
from tfw.networking.server import EventHandlerConnector
|
from tfw.networking.server import EventHandlerConnector
|
||||||
from tfw.networking import MessageSender
|
from tfw.networking import MessageSender
|
||||||
|
from tfw.networking.fsm_aware import FSMAware
|
||||||
from tfw.crypto import KeyManager, verify_message, sign_message
|
from tfw.crypto import KeyManager, verify_message, sign_message
|
||||||
from tfw.config.logs import logging
|
from tfw.config.logs import logging
|
||||||
|
|
||||||
from .zmq_websocket_proxy import ZMQWebSocketProxy
|
from .zmq_websocket_proxy import ZMQWebSocketProxy
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class TFWServer:
|
class TFWServer(FSMAware):
|
||||||
"""
|
"""
|
||||||
This class handles the proxying of messages between the frontend and event handers.
|
This class handles the proxying of messages between the frontend and event handers.
|
||||||
It proxies messages from the "/ws" route to all event handlers subscribed to a ZMQ
|
It proxies messages from the "/ws" route to all event handlers subscribed to a ZMQ
|
||||||
SUB socket.
|
SUB socket.
|
||||||
"""
|
"""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
self._event_handler_connector = EventHandlerConnector()
|
self._event_handler_connector = EventHandlerConnector()
|
||||||
self._uplink_connector = ServerUplinkConnector()
|
self._uplink_connector = ServerUplinkConnector()
|
||||||
self._auth_key = KeyManager().auth_key
|
self._auth_key = KeyManager().auth_key
|
||||||
@ -30,7 +33,11 @@ class TFWServer:
|
|||||||
self.application = Application([(
|
self.application = Application([(
|
||||||
r'/ws', ZMQWebSocketProxy, {
|
r'/ws', ZMQWebSocketProxy, {
|
||||||
'event_handler_connector': self._event_handler_connector,
|
'event_handler_connector': self._event_handler_connector,
|
||||||
'message_handlers': [self.handle_trigger, self.handle_recover],
|
'message_handlers': [
|
||||||
|
self.handle_trigger,
|
||||||
|
self.handle_recover,
|
||||||
|
self.handle_fsm_update
|
||||||
|
],
|
||||||
'frontend_message_handlers': [self.save_frontend_messages]
|
'frontend_message_handlers': [self.save_frontend_messages]
|
||||||
})])
|
})])
|
||||||
|
|
||||||
@ -55,6 +62,9 @@ class TFWServer:
|
|||||||
self._frontend_messages.replay_messages(self._uplink_connector)
|
self._frontend_messages.replay_messages(self._uplink_connector)
|
||||||
self._frontend_messages.clear()
|
self._frontend_messages.clear()
|
||||||
|
|
||||||
|
def handle_fsm_update(self, message):
|
||||||
|
self.update_fsm_data(message)
|
||||||
|
|
||||||
def save_frontend_messages(self, message):
|
def save_frontend_messages(self, message):
|
||||||
self._frontend_messages.save_message(message)
|
self._frontend_messages.save_message(message)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user