openwechat icon indicating copy to clipboard operation
openwechat copied to clipboard

放在服务器上,一两天不管,就自动掉线了?是因为心跳丢失导致的吗

Open the-yex opened this issue 1 year ago • 29 comments

the-yex avatar Apr 18 '24 08:04 the-yex

有没有可能你手机掉线了

mmdi1 avatar Apr 18 '24 10:04 mmdi1

有没有可能你手机掉线了

It shouldn't be caused by the phone going offline. The phone is always online.

the-yex avatar Apr 19 '24 01:04 the-yex

手机掉线? 这个还需要手机微信一直在线吗?

useryyi avatar Apr 19 '24 14:04 useryyi

服务器上跑,一两天不管就掉线了+1

edisonX-sudo avatar May 15 '24 13:05 edisonX-sudo

这个我想了其他思路解决了,目前两个月没有掉线了

the-yex avatar May 16 '24 01:05 the-yex

这个我想了其他思路解决了,目前两个月没有掉线了

你好 可否指点一二 感谢🙏

edisonX-sudo avatar May 16 '24 02:05 edisonX-sudo

很无脑的办法,就是自动保活就行了,我的实现是关注了我自己的一个工具公众号,我的公众号有关键词回复功能,发ping,就会自动回复pong,你可以关注 "跳跳是只cat",然后向他发ping就行了 ,https://github.com/code-innovator-zyx/wechat-gptbot/blob/main/core/handler/speciallyAction.go

the-yex avatar May 16 '24 02:05 the-yex

很无脑的办法,就是自动保活就行了,我的实现是关注了我自己的一个工具公众号,我的公众号有关键词回复功能,发ping,就会自动回复pong,你可以关注 "跳跳是只cat",然后向他发ping就行了 ,https://github.com/code-innovator-zyx/wechat-gptbot/blob/main/core/handler/speciallyAction.go

这个我估计化好些时间都想不到 好人一生平安🙏

edisonX-sudo avatar May 16 '24 02:05 edisonX-sudo

机器人不回复消息 有两种情况:1,真掉线了,服务器断了,2 是手机端微信长时间没有进入过,进入了假死状态,机器人不会回复消息,但是是在线状态的,这时候 手动打开一下手机端微信 是可以恢复正常的,不知道说的是哪种

863168558 avatar May 16 '24 05:05 863168558

很无脑的办法,就是自动保活就行了,我的实现是关注了我自己的一个工具公众号,我的公众号有关键词回复功能,发ping,就会自动回复pong,你可以关注 "跳跳是只cat",然后向他发ping就行了 ,https://github.com/code-innovator-zyx/wechat-gptbot/blob/main/core/handler/speciallyAction.go

这个我估计化好些时间都想不到 好人一生平安🙏

image 楼下这位大佬说的很对,一两天不管就掉线了一般是第二种情况,就是 "手机端微信长时间没有进入过,进入了假死状态,机器人不会回复消息,但是是在线状态的 " 我按照这个自动保活的方式,还是会掉线,并且发现,从心跳包发送失败到真正掉线会有一段时间,也就是假死的这个状态,在假死状态时,只需要手动打开一下手机端微信 是可以恢复正常的 如果假死状态没有打开手机端微信,一段时间后就会离线

ldjx7 avatar May 28 '24 08:05 ldjx7

我也遇到类似情况了,请教各位几个问题:

  1. 按照 @ldjx7 的说法,web客户端运行中,如果长期不打开微信手机端,会进入假死乃至离线状态。请问如果手机端不开,客户端定时主动发送消息,能避免假死吗?
  2. 假死或离线这种状态时,客户端调用sync check接口时会有报错或者特殊响应吗?

这个问题比较难重现,如果哪位有经验,还请不吝赐教。谢谢。

CliffHan avatar Oct 14 '24 03:10 CliffHan

我是用web协议来开小号的。现在的想法是,如果定时发送消息能避免假死,那么小号定时给主号发消息就可以了。否则就只能亡羊补牢,假死或离线时通过邮件通知主号。

CliffHan avatar Oct 14 '24 03:10 CliffHan

我也遇到类似情况了,请教各位几个问题:

  1. 按照 @ldjx7 的说法,web客户端运行中,如果长期不打开微信手机端,会进入假死乃至离线状态。请问如果手机端不开,客户端定时主动发送消息,能避免假死吗?
  2. 假死或离线这种状态时,客户端调用sync check接口时会有报错或者特殊响应吗?

这个问题比较难重现,如果哪位有经验,还请不吝赐教。谢谢。 避免不了,如果你手机端离线,一定会掉线的,所以一定要保证手机端部掉线

the-yex avatar Oct 14 '24 03:10 the-yex

我也遇到类似情况了,请教各位几个问题:

  1. 按照 @ldjx7 的说法,web客户端运行中,如果长期不打开微信手机端,会进入假死乃至离线状态。请问如果手机端不开,客户端定时主动发送消息,能避免假死吗?
  2. 假死或离线这种状态时,客户端调用sync check接口时会有报错或者特殊响应吗?

这个问题比较难重现,如果哪位有经验,还请不吝赐教。谢谢。

因为这个是微信服务器端控制的主动退出,怎么也无法避免

the-yex avatar Oct 14 '24 03:10 the-yex

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗?

CliffHan avatar Oct 14 '24 08:10 CliffHan

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

the-yex avatar Oct 14 '24 08:10 the-yex

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

starkxun avatar Oct 15 '24 02:10 starkxun

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

the-yex avatar Oct 15 '24 02:10 the-yex

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉

starkxun avatar Oct 15 '24 02:10 starkxun

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉 image我不行,我手机一旦退出登录,电脑就直接强制退出了

the-yex avatar Oct 15 '24 02:10 the-yex

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉 image我不行,我手机一旦退出登录,电脑就直接强制退出了

我不是登录的这个客户端,是代码执行后在浏览器生成的那个二维码,扫码后,开发的微信机器人就一直在线,手机端退出了也不会掉

starkxun avatar Oct 15 '24 02:10 starkxun

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉 image我不行,我手机一旦退出登录,电脑就直接强制退出了

我不是登录的这个客户端,是代码执行后在浏览器生成的那个二维码,扫码后,开发的微信机器人就一直在线,手机端退出了也不会掉

哦,这个没试过,但是你退出了那个机器人一定会在短时间内掉线,可能没有客户端那么及时

the-yex avatar Oct 15 '24 02:10 the-yex

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉 image我不行,我手机一旦退出登录,电脑就直接强制退出了

我不是登录的这个客户端,是代码执行后在浏览器生成的那个二维码,扫码后,开发的微信机器人就一直在线,手机端退出了也不会掉

哦,这个没试过,但是你退出了那个机器人一定会在短时间内掉线,可能没有客户端那么及时

是公司的人和我说的,他之前退出了两天都没掉线,今天掉线的时候和我说的

starkxun avatar Oct 15 '24 02:10 starkxun

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉 image我不行,我手机一旦退出登录,电脑就直接强制退出了

我不是登录的这个客户端,是代码执行后在浏览器生成的那个二维码,扫码后,开发的微信机器人就一直在线,手机端退出了也不会掉

哦,这个没试过,但是你退出了那个机器人一定会在短时间内掉线,可能没有客户端那么及时

是公司的人和我说的,他之前退出了两天都没掉线,今天掉线的时候和我说的

要想机器人长期在线,就要保持手机端不掉线;反过来并不是说手机不在线,机器人就一定会马上掉线,只能说机器人会在某个时间段失活

the-yex avatar Oct 15 '24 02:10 the-yex

感谢 @code-innovator-zyx 前面您提到通过公众号自动 ping pong 能保活,这个方法确定可行吗? 嗯,怎么说,只要你手机端没掉线,基本上不会掉。还有个更简单的就是向你的文件助手发信息,也是一样的

我今天测试了一下,把手机端的微信退出了,然后电脑端还在正常执行,所以会不会是电脑端掉线是因为会话过期了呢

啥意思,你手机微信退出了?电脑端还不掉?不可能吧,你是点击的退出登录,还是只是把微信程序关掉

是退出手机端微信了,你可以试一下,我今天也很惊讶,试了好几次,电脑端都没有掉 image我不行,我手机一旦退出登录,电脑就直接强制退出了

我不是登录的这个客户端,是代码执行后在浏览器生成的那个二维码,扫码后,开发的微信机器人就一直在线,手机端退出了也不会掉

哦,这个没试过,但是你退出了那个机器人一定会在短时间内掉线,可能没有客户端那么及时

是公司的人和我说的,他之前退出了两天都没掉线,今天掉线的时候和我说的

要想机器人长期在线,就要保持手机端不掉线;反过来并不是说手机不在线,机器人就一定会马上掉线,只能说机器人会在某个时间段失活

这样啊,了解了,谢谢兄弟

starkxun avatar Oct 15 '24 02:10 starkxun

试试每小时给wx支付发消息

[]string{"hi", "你好", "余额", "收入", "支出", "账单", "贷款", "理财", "投资", "股票", "基金", "保险", "房产", "车辆", "信用卡", "借记卡", "贷记卡", "借款"}

hailaz avatar Oct 19 '24 04:10 hailaz

很想解决这个问题,但现在看起来没有确实可行的方案,我说一下我了解到的信息吧。

  1. 掉线的时间不是很确定,我这边看 log 的情况是,如果按照手机端没打开微信的时间来算,大约是3天。
    如果按照机器人最后一次响应的时间来算,大约是不到 24 小时。
    因此这个规律目前还不确定,回头我可能会专门抓一次 log 看看。
  2. 掉线的本质,是执行 synccheck 操作时,server 端返回了 1102,也就是 cookie 过期错误。
    cookie 设置我看了一下,在 webwxnewloginpage(也就是 redirect_uri) 和 webwxsync 时会有更新。
    synccheck 时是没有更新 cookie的。但由于之前写的是基于 openwechat 实现的,log 打印不全。
    回头我可能会在我自己的版本上,重新抓一次完整的 log 过程看看。不过这个确实不怎么好调试,等待时间太长了。

如果大家有什么其他信息,也欢迎给我提示。谢谢。

CliffHan avatar Oct 27 '24 12:10 CliffHan

顺便说一句,我还搜到这个提交:https://github.com/liuwons/wxBot/pull/205/files 里面大概意思是 synccheck 时轮询 webpush 和 webpush2 两个域名。不确定这个方式现在是否有效。说到底还是等待时间太长的问题,验证起来太麻烦了。

CliffHan avatar Oct 27 '24 13:10 CliffHan

顺便说一句,我还搜到这个提交:https://github.com/liuwons/wxBot/pull/205/files 里面大概意思是 synccheck 时轮询 webpush 和 webpush2 两个域名。不确定这个方式现在是否有效。说到底还是等待时间太长的问题,验证起来太麻烦了。

大佬,有解决方案了吗?

lfcleo avatar Dec 14 '24 08:12 lfcleo