Files
wechat_ipad_pro/srv/wxrouter/wxgetfavinfo.go
2026-02-17 13:06:23 +08:00

43 lines
1.1 KiB
Go

package wxrouter
import (
"time"
"xiawan/wx/clientsdk"
"xiawan/wx/protobuf/wechat"
"xiawan/wx/srv/wxcore"
"xiawan/wx/srv/wxface"
)
// WXGetFavInfoRouter 心跳包响应路由
type WXGetFavInfoRouter struct {
wxcore.WXBaseRouter
}
// Handle 处理conn业务的方法
func (hbr *WXGetFavInfoRouter) Handle(wxResp wxface.IWXResponse) error {
defer wxcore.TryE("WXGetFavInfoRouter Handle")
currentWXConn := wxResp.GetWXConncet()
currentWXAccount := currentWXConn.GetWXAccount()
currentUserInfo := currentWXAccount.GetUserInfo()
currentWXCache := currentWXConn.GetWXCache()
currentSyncMgr := currentWXConn.GetWXSyncMgr()
// 解析退出登陆响应包
var logoutResp wechat.GetFavInfoResponse
err := clientsdk.ParseResponseData(currentUserInfo, wxResp.GetPackHeader(), &logoutResp)
if err != nil {
// 请求出问题了,判断是否掉线,并重连
time.Sleep(1 * time.Second)
go currentWXConn.CheckOnLineStatusLogin()
return err
}
// 如果没有初始化完成,则继续初始化
if !currentWXCache.IsInitFavSyncFinished() {
currentSyncMgr.SendFavSyncRequest()
return nil
}
return nil
}