小程序
小游戏
企业微信
微信支付
扫描小程序码分享
调用 wx.closeSocket() 关闭wss链接 之后,如何重新打开链接, 使用 wx.connectSocket 打开第二次没问题, 打开第三次的时候报错
“ VM3292:1 同时最多发起 2 个 socket 请求,更多请参考文档”
请教如何释放打开的资源,链接断开后如何重连
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
每次连接之前,都要确保socket已经关闭
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关闭是调用close 那个函数吗? 不管用啊, 我调用了close ,再次调connect时候, 会提示只能创建两个链接
var SocketTask;
SocketTask = wx.connectSocket({
url: websocket
});
如上这样建立连接
然后如下关闭连接
SocketTask.close();
然后需要开启长连接的时候再执行:
我是这样用的socket,希望对你有所帮助
感谢回复
不过我先就是这样写,
先用 .close();
然后再次调用 wx.connectSocket
第一次没问题
重复两次就不行了, 提示 ws最多只能建立两个
是不是 api有bug
官方的那个长连示例里面指出了:
推荐开发者尽量使用 socketTask 的方式去管理 webSocket 链接,每一条链路的生命周期都更加可控。同时存在多个 webSocket 的链接的情况下使用 wx 前缀的方法可能会带来一些和预期不一致的情况。当存在多条连接时,wx.onSocketOpen、wx.sendSocketMessage、wx.onSocketMessage 等接口会只作用于第一条连接的长连。且wx.onSocketOpen 接口不能多次注册 webSocket 长连的回调函数,仅最后一次生效。使用 socketTask 任务的方式则不会出现上述问题。
按官方的说法,你说的这个应该就是api设计时的不足
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
每次连接之前,都要确保socket已经关闭
关闭是调用close 那个函数吗? 不管用啊, 我调用了close ,再次调connect时候, 会提示只能创建两个链接
var SocketTask;
SocketTask = wx.connectSocket({
url: websocket
});
如上这样建立连接
然后如下关闭连接
SocketTask.close();
然后需要开启长连接的时候再执行:
SocketTask = wx.connectSocket({
url: websocket
});
我是这样用的socket,希望对你有所帮助
感谢回复
不过我先就是这样写,
先用 .close();
然后再次调用 wx.connectSocket
第一次没问题
重复两次就不行了, 提示 ws最多只能建立两个
是不是 api有bug
官方的那个长连示例里面指出了:
推荐开发者尽量使用 socketTask 的方式去管理 webSocket 链接,每一条链路的生命周期都更加可控。同时存在多个 webSocket 的链接的情况下使用 wx 前缀的方法可能会带来一些和预期不一致的情况。当存在多条连接时,wx.onSocketOpen、wx.sendSocketMessage、wx.onSocketMessage 等接口会只作用于第一条连接的长连。且wx.onSocketOpen 接口不能多次注册 webSocket 长连的回调函数,仅最后一次生效。使用 socketTask 任务的方式则不会出现上述问题。
按官方的说法,你说的这个应该就是api设计时的不足