小程序
小游戏
企业微信
微信支付
扫描小程序码分享
启动小程序后创建的websocket在没有进入后台时老是自动关闭,时间间隔基本在3分钟内。返回的状态码是1006,描述是
abnormal closure。请问这是怎么回事呢?如何解决?
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
跟后台调试看看呢,感觉是服务器有问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
后台开发说由前端发起的断开,但前端并没有做相应的断开操作,说明下程序是保持在前台状态,并非进入了后台状态。麻烦看看是什么原因导致的
后端ngix改一下proxy_read_timeout
好的,那试试了
兄弟,解决了吗?我也遇到类似的问题
https://developers.weixin.qq.com/community/minigame/doc/000ce8aac60bb89c9618d87205c800
没有呢,只能是断了就重连了。
https://blog.csdn.net/oqqYuan1234567890/article/details/70285866
你解决了?
解决了,你每30秒给后台发一条心跳,让后台不要处理这条消息就OK了。感觉是微信为了节省资源,ws3分钟没通讯就会关闭
还有注意ws协议版本前后端保持一致
麻烦提供下代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
App({
onLaunch:
function
() {
this
.startSocket();
},
startSocket:
(){
var
time=0,soc = wx.connectSocket({
url:
''
,
header: {
'content-type'
:
'application/json'
complete:
(e) {
console.log(
'启动websocket'
, e);
time = Date.now();
}
});
soc.onOpen(
'websocket连接正常'
);
})
soc.onMessage(
(data) {
'收到信息'
, data);
soc.onClose(
'socket关闭'
'socket间隔时长'
, (Date.now() - time) +
'ms'
soc.onError(
'socket出错'
这次的时间间隔更短了
这次实现重连
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
跟后台调试看看呢,感觉是服务器有问题
后台开发说由前端发起的断开,但前端并没有做相应的断开操作,说明下程序是保持在前台状态,并非进入了后台状态。麻烦看看是什么原因导致的
后端ngix改一下proxy_read_timeout
好的,那试试了
兄弟,解决了吗?我也遇到类似的问题
https://developers.weixin.qq.com/community/minigame/doc/000ce8aac60bb89c9618d87205c800
没有呢,只能是断了就重连了。
https://blog.csdn.net/oqqYuan1234567890/article/details/70285866
你解决了?
解决了,你每30秒给后台发一条心跳,让后台不要处理这条消息就OK了。感觉是微信为了节省资源,ws3分钟没通讯就会关闭
还有注意ws协议版本前后端保持一致
麻烦提供下代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
App({
onLaunch:
function
() {
this
.startSocket();
},
startSocket:
function
(){
var
time=0,soc = wx.connectSocket({
url:
''
,
header: {
'content-type'
:
'application/json'
},
complete:
function
(e) {
console.log(
'启动websocket'
, e);
time = Date.now();
}
});
soc.onOpen(
function
(e) {
console.log(
'websocket连接正常'
);
})
soc.onMessage(
function
(data) {
console.log(
'收到信息'
, data);
})
soc.onClose(
function
(e) {
console.log(
'socket关闭'
, e);
console.log(
'socket间隔时长'
, (Date.now() - time) +
'ms'
);
})
soc.onError(
function
(e) {
console.log(
'socket出错'
, e);
});
}
})
这次的时间间隔更短了
这次实现重连