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 }