github.com/glide-im/glide@v1.6.0/internal/message_handler/sub.go (about) 1 package message_handler 2 3 import ( 4 messages2 "github.com/glide-im/glide/im_service/messages" 5 "github.com/glide-im/glide/pkg/gate" 6 "github.com/glide-im/glide/pkg/logger" 7 "github.com/glide-im/glide/pkg/messages" 8 "github.com/glide-im/glide/pkg/subscription" 9 "github.com/glide-im/glide/pkg/subscription/subscription_impl" 10 ) 11 12 // handleGroupMsg 分发群消息 13 func (d *MessageHandler) handleGroupMsg(c *gate.Info, msg *messages.GlideMessage) error { 14 15 id := subscription.ChanID(msg.To) 16 17 cm := messages.ChatMessage{} 18 e := msg.Data.Deserialize(&cm) 19 if e != nil { 20 return e 21 } 22 23 m := subscription_impl.PublishMessage{ 24 From: subscription.SubscriberID(gate.NewID2(msg.From)), 25 Message: msg, 26 Type: subscription_impl.TypeMessage, 27 } 28 err := d.def.GetGroupInterface().PublishMessage(id, &m) 29 30 if err != nil { 31 logger.E("dispatch group message error: %v", err) 32 notify := messages.NewMessage(msg.GetSeq(), messages2.ActionMessageFailed, nil) 33 d.enqueueMessage(c.ID, notify) 34 } else { 35 _ = d.ackChatMessage(c, &cm) 36 } 37 38 return nil 39 } 40 41 func (d *MessageHandler) handleAckGroupMsgRequest(c *gate.Info, msg *messages.GlideMessage) error { 42 ack := new(messages.AckGroupMessage) 43 if !d.unmarshalData(c, msg, ack) { 44 return nil 45 } 46 //err := msgdao.UpdateGroupMemberMsgState(ack.Gid, 0, ack.Mid, ack.Seq) 47 //if err != nil { 48 // 49 //} 50 return nil 51 }