def doBroadcastMessage(self, arg): """ Action method. """ from broadcast import broadcast_service msg, newpacket = arg msgid = msg['id'] if _Debug: lg.out(_DebugLevel, 'broadcaster_node.doBroadcastMessage %s' % msgid) if msgid in self.messages_sent: lg.warn('CRITICAL, found same message already broadcasted !!!') return # if some listeners connected - send to them for listener_idurl, scope in self.listeners.items(): if listener_idurl == newpacket.OwnerID: # skip this listener continue lg.out(4, ' test %s:%s for %s' % (listener_idurl, scope, msg['owner'])) # but check if they really need that message # listener can set a scope, so he will get this broadcasting # only if creator of that message is listed in scope if not scope or msg['owner'] in scope: outpacket = broadcast_service.packet_for_listener( listener_idurl, msg) p2p_service.SendBroadcastMessage(outpacket) # fire broadcast listening callback if self.incoming_broadcast_message_callback is not None: self.incoming_broadcast_message_callback(msg) for broadcaster_idurl in self.connected_broadcasters: outpacket = broadcast_service.packet_for_broadcaster( broadcaster_idurl, msg) p2p_service.SendBroadcastMessage(outpacket) self.messages_sent[msgid] = int(time.time())
def doSendMessageToBroadcaster(self, *args, **kwargs): """ Action method. """ from broadcast import broadcast_service outpacket = broadcast_service.packet_for_broadcaster( self.broadcaster_idurl, *args, **kwargs) p2p_service.SendBroadcastMessage(outpacket)
def doSendMessageToBroadcaster(self, arg): """ Action method. """ from broadcast import broadcast_service outpacket = broadcast_service.packet_for_broadcaster( self.broadcaster_idurl, arg) p2p_service.SendBroadcastMessage(outpacket)
def doCheckAndSendForward(self, arg): """ Action method. """ from broadcast import broadcast_service msg, newpacket = arg msgid = msg['id'] if _Debug: lg.out(_DebugLevel, 'broadcaster_node.doCheckAndSendForward %s' % msgid) self.last_success_action_time = time.time() # skip broadcasting if this message was already sent if msgid in self.messages_sent: if _Debug: lg.out( _DebugLevel, ' resent skipped, %s was already sent to my broadcasters' % msgid) # if msgid not in self.messages_acked: # p2p_service.SendAck(newpacket, '0') # else: # p2p_service.SendAck(newpacket, str(self.messages_acked[msgid])) return # if some listeners connected - send to them for listener_idurl, scope in self.listeners.items(): lg.out( 4, ' test %s:%s for %s' % (listener_idurl, scope, msg['owner'])) # but check if they really need that message # listener can set a scope, so he will get this broadcasting # only if creator of that message is listed in scope if not scope or msg['owner'] in scope: outpacket = broadcast_service.packet_for_listener( listener_idurl, msg) p2p_service.SendBroadcastMessage(outpacket) # fire broadcast listening callback if self.incoming_broadcast_message_callback is not None: self.incoming_broadcast_message_callback(msg) # finally broadcast further for broadcaster_idurl in self.connected_broadcasters: outpacket = broadcast_service.packet_for_broadcaster( broadcaster_idurl, msg) p2p_service.SendBroadcastMessage(outpacket) self.messages_sent[msgid] = int(time.time())
def doCheckAndSendForward(self, arg): """ Action method. """ from broadcast import broadcast_service msg, newpacket = arg msgid = msg['id'] if _Debug: lg.out(_DebugLevel, 'broadcaster_node.doCheckAndSendForward %s' % msgid) self.last_success_action_time = time.time() # skip broadcasting if this message was already sent if msgid in self.messages_sent: if _Debug: lg.out(_DebugLevel, ' resent skipped, %s was already sent to my broadcasters' % msgid) # if msgid not in self.messages_acked: # p2p_service.SendAck(newpacket, '0') # else: # p2p_service.SendAck(newpacket, str(self.messages_acked[msgid])) return # if some listeners connected - send to them for listener_idurl, scope in self.listeners.items(): lg.out(4, ' test %s:%s for %s' % (listener_idurl, scope, msg['owner'])) # but check if they really need that message # listener can set a scope, so he will get this broadcasting # only if creator of that message is listed in scope if not scope or msg['owner'] in scope: outpacket = broadcast_service.packet_for_listener(listener_idurl, msg) p2p_service.SendBroadcastMessage(outpacket) # fire broadcast listening callback if self.incoming_broadcast_message_callback is not None: self.incoming_broadcast_message_callback(msg) # finally broadcast further for broadcaster_idurl in self.connected_broadcasters: outpacket = broadcast_service.packet_for_broadcaster(broadcaster_idurl, msg) p2p_service.SendBroadcastMessage(outpacket) self.messages_sent[msgid] = int(time.time())