code: def handle(self, message, connection):
          ''' Delegate a received message to the appropriate handler.
  
          Args:
              message (Message) :
                  The message that was receive that needs to be handled
  
              connection (ServerConnection) :
                  The connection that received this message
  
          Raises:
              ProtocolError
  
          '''
  
          handler = self._handlers.get((message.msgtype, message.revision))
  
          if handler is None:
              handler = self._handlers.get(message.msgtype)
  
          if handler is None:
              raise ProtocolError("%s not expected on server" % message)
  
          try:
              work = yield handler(message, connection)
          except Exception as e:
              log.error("error handling message %r: %r", message, e)
              log.debug("  message header %r content %r", message.header, message.content, exc_info=1)
              work = connection.error(message, repr(e))
          raise gen.Return(workf handle(self, message, connection):
          ''' Delegate a received message to the appropriate handler.
  
          Args:
              message (Message) :
                  The message that was receive that needs to be handled
  
              connection (ServerConnection) :
                  The connection that received this message
  
          Raises:
              ProtocolError
  
          '''
  
          handler = self._handlers.get((message.msgtype, message.revision))
  
          if handler is None:
              handler = self._handlers.get(message.msgtype)
  
          if handler is None:
              raise ProtocolError("%s not expected on server" % message)
  
          try:
              work = yield handler(message, connection)
          except Exception as e:
              log.error("error handling message %r: %r", message, e)
              log.debug("  message header %r content %r", message.header, message.content, exc_info=1)
              work = connection.error(message, repr(e))
          raise gen.Return(work)
docs: Delegate a received message to the appropriate handler.
  
          Args:
              message (Message) :
                  The message that was receive that needs to be handled
  
              connection (ServerConnection) :
                  The connection that received this message
  
          Raises:
              ProtocolError