code: func (cs *ClientServerImpl) handleMessage(data []byte) {
  	typedMessage, typeStr, err := DecodeData(data, cs.TypeDecoder)
  	if err != nil {
  		seelog.Warnf("Unable to handle message from backend: %v", err)
  		return
  	}
  
  	seelog.Debugf("Received message of type: %s", typeStr)
  
  	if cs.AnyRequestHandler != nil {
  		reflect.ValueOf(cs.AnyRequestHandler).Call([]reflect.Value{reflect.ValueOf(typedMessage)})
  	}
  
  	if handler, ok := cs.RequestHandlers[typeStr]; ok {
  		reflect.ValueOf(handler).Call([]reflect.Value{reflect.ValueOf(typedMessage)})
  	} else {
  		seelog.Infof("No handler for message type: %s", typeStr)
  	}
  }
docs: // handleMessage dispatches a message to the correct 'requestHandler' for its
  // type. If no request handler is found, the message is discarded.