code: func HandleMessage(r io.Reader, w io.Writer, handler RequestHandler) error {
  	req, err := ReadPacket(r)
  	if err != nil {
  		return err
  	}
  
  	res := handler.HandleMessage(w, &req)
  	if res == nil {
  		// Quiet command
  		return nil
  	}
  
  	if !res.Fatal {
  		res.Opcode = req.Opcode
  		res.Opaque = req.Opaque
  		_, err = res.Transmit(w)
  		if err != nil {
  			return err
  		}
  		return nil
  	}
  
  	return io.EOF
  }
docs: // Handle an individual message.