示例#1
0
func (c *rpcPlusCodec) ReadRequestHeader(r *request, first bool) error {
	m := codec.Message{Headers: c.req.Header}

	if !first {
		var tm transport.Message
		if err := c.socket.Recv(&tm); err != nil {
			return err
		}
		c.buf.rbuf.Reset()
		if _, err := c.buf.rbuf.Write(tm.Body); err != nil {
			return err
		}

		m.Headers = tm.Header
	}

	err := c.codec.ReadHeader(&m, codec.Request)
	r.ServiceMethod = m.Method
	r.Seq = m.Id
	return err
}