github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/mq/stomp/stomp.message.go (about)

     1  package stomp
     2  
     3  import s "github.com/zkfy/stompngo"
     4  
     5  //StompMessage stomp消息
     6  type StompMessage struct {
     7  	s       *StompConsumer
     8  	msg     *s.Message
     9  	Message string
    10  }
    11  
    12  //Ack 确定消息
    13  func (m *StompMessage) Ack() error {
    14  	return m.s.conn.Ack(m.msg.Headers)
    15  }
    16  
    17  //Nack 取消消息
    18  func (m *StompMessage) Nack() error {
    19  	h := s.Headers{"message-id", m.msg.Headers.Value("message-id"),
    20  		"subscription", m.msg.Headers.Value("subscription"),
    21  		"id", m.msg.Headers.Value("message-id")}
    22  	return m.s.conn.Nack(h)
    23  }
    24  
    25  //GetMessage 获取消息
    26  func (m *StompMessage) GetMessage() string {
    27  	return m.Message
    28  }
    29  
    30  //Has 是否报含数据
    31  func (m *StompMessage) Has() bool {
    32  	return len(m.msg.Headers) > 0 && m.msg.Headers.Value("connection_read_error") != "EOF"
    33  }
    34  
    35  //NewStompMessage 创建消息
    36  func NewStompMessage(s *StompConsumer, msg *s.Message) *StompMessage {
    37  	return &StompMessage{s: s, msg: msg, Message: string(msg.Body)}
    38  }