Exemplo n.º 1
0
 def _handler(self, socket, address):
     """Message wait loop for a client"""
     self.stats.update_stats_increment("client", "total_num", 1)
     user_info = None
     msg_parser = message_key_types.Message()
     try:
         while True:
             wait_read(socket.fileno())
             buf = socket.recv(8192)
             if len(buf) == 0:
                 break
             msg_parser.recv(buf)
             while True:
                 msg = msg_parser.parse()
                 if msg is None:
                     break
                 disconnection, new_info = self._process(socket, msg, msg_parser.payload_type)
                 if disconnection:
                     break
                 if new_info is not None:
                     user_info = new_info
     except Exception as e:
         self.logger.info("TCP disconnect: %s" % e)
         traceback.print_exc()
     self.logger.debug("closing socket")
     if user_info is not None:
         self.networking.domains[user_info[0]]['user'].unregister_user(user_info[1], socket)
     try:
         socket.shutdown(py_socket.SHUT_RDWR)
         socket.close()
     except:
         pass
     self.logger.debug("connection closed")
     self.stats.update_stats_decrement("client", "total_num", 1)
Exemplo n.º 2
0
def dummy_server_loop(socket, address):
    msg_parser = message_key_types.Message()
    try:
        while True:
            wait_read(socket.fileno())
            buf = socket.recv(8192)
            if len(buf) == 0:
                break
            msg_parser.recv(buf)
            while True:
                msg = msg_parser.parse()
                if msg is None:
                    break
                result_queue.put(msg)
    except:
        print("## disconnected")
Exemplo n.º 3
0
 def receiver_loop(self):
     msg_parser = message_key_types.Message()
     try:
         while True:
             buf = self.connection.recv(8192)
             if len(buf) == 0:
                 break
             msg_parser.recv(buf)
             while True:
                 msg = msg_parser.parse()
                 if msg is None:
                     break
                 self.callback.dispatch(msg, msg_parser.payload_type)
     except Exception as e:
         self.logger.info("TCP disconnect: %s" % e)
         print(traceback.format_exc())
     self.connection.close()