//向客户端发包,存进一个消息队列,异步发送 func (c *ClientNode) SendMessage(message *rpc.Message) error { if c.quit { return fmt.Errorf("client is quit") } message.Dup() select { case c.Sendbuf <- message: return nil default: message.Free() return fmt.Errorf("send buffer full") } }