diff --git a/bot.go b/bot.go index 3c974ec..f8e98fc 100644 --- a/bot.go +++ b/bot.go @@ -223,8 +223,8 @@ func (b *Bot) syncCheck() error { if !resp.Success() { return resp.Err() } - // 如果Selector不为0,则获取消息 - if !resp.NorMal() { + switch resp.Selector { + case SelectorNewMsg: messages, err := b.syncMessage() if err != nil { return err @@ -237,8 +237,12 @@ func (b *Bot) syncCheck() error { // 默认同步调用 // 如果异步调用则需自行处理 // 如配合 openwechat.MessageMatchDispatcher 使用 + // NOTE: 请确保 MessageHandler 不会阻塞,否则会导致收不到后续的消息 b.MessageHandler(message) } + case SelectorModContact: + case SelectorAddOrDelContact: + case SelectorModChatRoom: } } return err diff --git a/sync_check.go b/sync_check.go index 3dd069b..6f70da3 100644 --- a/sync_check.go +++ b/sync_check.go @@ -25,7 +25,11 @@ func (s SyncCheckResponse) Success() bool { } func (s SyncCheckResponse) NorMal() bool { - return s.Success() && s.Selector == "0" + return s.Success() && s.Selector == SelectorNormal +} + +func (s SyncCheckResponse) HasNewMessage() bool { + return s.Success() && s.Selector == SelectorNewMsg } func (s SyncCheckResponse) Err() error {