mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-11-04 12:02:55 +00:00 
			
		
		
		
	Make TFWServer FSMAware
This commit is contained in:
		@@ -9,20 +9,23 @@ from tornado.web import Application
 | 
			
		||||
from tfw.networking.event_handlers import ServerUplinkConnector
 | 
			
		||||
from tfw.networking.server import EventHandlerConnector
 | 
			
		||||
from tfw.networking import MessageSender
 | 
			
		||||
from tfw.networking.fsm_aware import FSMAware
 | 
			
		||||
from tfw.crypto import KeyManager, verify_message, sign_message
 | 
			
		||||
from tfw.config.logs import logging
 | 
			
		||||
 | 
			
		||||
from .zmq_websocket_proxy import ZMQWebSocketProxy
 | 
			
		||||
 | 
			
		||||
LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TFWServer:
 | 
			
		||||
class TFWServer(FSMAware):
 | 
			
		||||
    """
 | 
			
		||||
    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
 | 
			
		||||
    SUB socket.
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        super().__init__()
 | 
			
		||||
        self._event_handler_connector = EventHandlerConnector()
 | 
			
		||||
        self._uplink_connector = ServerUplinkConnector()
 | 
			
		||||
        self._auth_key = KeyManager().auth_key
 | 
			
		||||
@@ -30,7 +33,11 @@ class TFWServer:
 | 
			
		||||
        self.application = Application([(
 | 
			
		||||
            r'/ws', ZMQWebSocketProxy, {
 | 
			
		||||
                '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]
 | 
			
		||||
            })])
 | 
			
		||||
 | 
			
		||||
@@ -55,6 +62,9 @@ class TFWServer:
 | 
			
		||||
            self._frontend_messages.replay_messages(self._uplink_connector)
 | 
			
		||||
            self._frontend_messages.clear()
 | 
			
		||||
 | 
			
		||||
    def handle_fsm_update(self, message):
 | 
			
		||||
        self.update_fsm_data(message)
 | 
			
		||||
 | 
			
		||||
    def save_frontend_messages(self, message):
 | 
			
		||||
        self._frontend_messages.save_message(message)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user