def __init__(self, handler): Thread.__init__(self) self.handler = handler self.sock = self.handler.socket self.typr_handler = self.handler.type_ self.packet = cnf.init_ntuple_data_message() pass
def run(self): sending_to_queue = glb_queue.g_to_main_exchange() sending_to_queue.next() while self.is_connect: # инициализируем и чистим значения при последующих циклах pack = [] # сборка цепочки сообщений size_next_mess = 0 current_message = cnf.init_ntuple_data_message() try: print ("waiting message...") recvd_msg = self.sock.recv(cnf.SIZE_HEADER) except: print ("reset connect") self.is_connect = False continue if not recvd_msg: print("reset connect") self.is_connect = False continue current_message = cnf.to_data_message_from_bytes_(bytes(recvd_msg)) if not current_message: print("reset connect") self.is_connect = False continue self.add_to_packet_from_main_header(current_message) while current_message.size_next > 0 and self.is_connect: current_message = cnf.to_data_message_from_bytes_(bytes(self.sock.recv(size_next_mess))) if not current_message or self._check_mess(current_message): print("dont have data or is not good. Close session...\n -->> ") self.is_connect = False continue else: pack.append(current_message.data) # прием закончен, добавить в CacheClient self._add_datas_in_packet(pack) sending_to_queue.send(self.packet) print("Message is receiving ad add to queue....") if not self.is_connect: self._close_session_() else: return pass