Example #1
0
 def _on_user_response(self, message):
     '''
     Расссылает сообщение, что есть ответ клиенту.
     @param message: UserResponseMessage
     '''
     logger.debug('sending client response message')
     new_message = messages.ClientResponseMessage(message.connection_id, message.packet)
     client_dispatcher.dispatch(new_message)
Example #2
0
 def _on_handler_close(self, handler_id):
     '''
     Удаляет обработчик соединения с указанным идентификатором.
     @param id: int
     '''
     logger.debug('removing handler #%s'%handler_id)
     message = messages.ClientDisconnectedMessage(handler_id)
     client_dispatcher.dispatch(message)
     del self._handlers[handler_id]
Example #3
0
 def _on_handler_message(self, handler_id, text):
     '''
     Обрабатывает входящий пакет.
     @param handler_id: int
     @param text: string
     '''
     logger.debug('parsing packet of length %s'%len(text))
     packet = Converter.unserialize(text)
     if packet is not None:
         message = messages.ClientRequestMessage(handler_id, packet)
         client_dispatcher.dispatch(message)
Example #4
0
 def _on_handler_open(self, handler_id):
     '''
     Проверяет количество текущих соединений.
     Если указанное соединение лишнее, закрывает его.
     @param handler_id: int
     '''
     count = len(self._handlers.values())
     max_count = settings.MAX_CONNECTION_COUNT
     if count > max_count:
         logger.debug('max connection count of %s exceeded, closing handler %s'%(max_count, handler_id))
         packet = outcoming.ServerBusyPacket()
         message = messages.ClientResponseMessage(handler_id, packet)
         client_dispatcher.dispatch(message)
         handler = self._handlers[handler_id]
         handler.close()