@@ -14,15 +14,23 @@ def on_channel_open(self, channel):
1414 self .channel : Channel = channel
1515 self .add_on_channel_close_callback ()
1616 info_queue = 'MOL.INFO.{node_id}' .format (node_id = self .NODE_ID )
17+ disconnect_queue = 'MOL.DISCONNECT.{node_id}' .format (node_id = self .NODE_ID )
1718 self .setup_queue (info_queue )
19+ self .setup_queue (disconnect_queue )
1820 self .channel .queue_bind (self .on_bindok , info_queue , 'MOL.INFO' )
21+ self .channel .queue_bind (self .on_bindok , disconnect_queue , 'MOL.DISCONNECT' )
1922 self .channel .basic_consume (self .process_info_packages , info_queue )
23+ self .channel .basic_consume (self .on_node_disconnect , disconnect_queue )
2024 self .discover_packet ()
2125
2226 def process_info_packages (self , unused_channel , basic_deliver , properties , body ):
2327 info_packet = json .loads (body )
2428 self .network .add_node (info_packet )
2529
30+ def on_node_disconnect (self , unused_channel , basic_deliver , properties , body ):
31+ disconnect_package = json .loads (body )
32+ self .network .disconnect_node (disconnect_package ['sender' ])
33+
2634 def emit (self , event_name , data = None ):
2735 candidates = self .get_emit_candidates (event_name )
2836 if len (candidates ) == 0 :
@@ -47,6 +55,12 @@ def broadcast(self, event_name, data=None):
4755 queue_name = 'MOL.EVENT.{node_id}' .format (node_id = node_id )
4856 self .channel .basic_publish ('' , queue_name , event_package )
4957
58+ def call (self ):
59+ pass
60+
61+ def dcall (self ):
62+ pass
63+
5064 def get_emit_candidates (self , event_name ):
5165 service_names = set ()
5266 for node_id , node_info in self .network .NODES .items ():
0 commit comments