更新消息处理逻辑

This commit is contained in:
nieqing 2021-08-30 09:35:57 +08:00
parent ba4857f2d3
commit 54f8d69b50

21
bot.go
View File

@ -263,14 +263,10 @@ func (b *Bot) getNewWechatMessage() error {
} }
// 更新SyncKey并且重新存入storage // 更新SyncKey并且重新存入storage
b.Storage.Response.SyncKey = resp.SyncKey b.Storage.Response.SyncKey = resp.SyncKey
// 遍历所有的新的消息,依次处理 // 异步执行,提升响应速度
for _, message := range resp.AddMsgList { // 避免单个消息处理函数阻塞,让其他的消息得不到处理
// 根据不同的消息类型来进行处理,方便后续统一调用 if b.MessageHandler != nil {
message.init(b) go b.handleMessage(resp.AddMsgList)
// 调用自定义的处理方法
if handler := b.MessageHandler; handler != nil {
handler(message)
}
} }
return nil return nil
} }
@ -370,3 +366,12 @@ func PrintlnQrcodeUrl(uuid string) {
println("访问下面网址扫描二维码登录") println("访问下面网址扫描二维码登录")
println(GetQrcodeUrl(uuid)) println(GetQrcodeUrl(uuid))
} }
func (b *Bot) handleMessage(messageList []*Message) {
for _, message := range messageList {
// 根据不同的消息类型来进行处理,方便后续统一调用
message.init(b)
// 调用自定义的处理方法
b.MessageHandler(message)
}
}