- 服务端websocket主动断开连接后小程序有时候监听不到socketClose
服务端(php代码)在执行socket_recv时,接收到的数据length<7时,关闭该连接,有时候,在某些手机上,偶尔会出现监听不到socketClose事件,导致因为websocket已经关闭,而客户端并不知道,就不会再次尝试连接websocket,进而无法收发数据的问题。返回退出小程序,再次进入也还会如此,只有退出微信或者重启手机,再次进入小程序,才能正常收发数据。 能不能在wx.sendSocketMessage的fail中有所反映,这样也就知道前一个websocket已经关闭,就可以再次尝试连接新的websocket呢? 这个问题不是经常出现,只是偶尔,不好捕捉问题,所以能不能这样弥补一下可能出现的情况?
2017-12-08 - 如何保证websocket一直连接?
websocket本身是长连接,但是也会有因为超时而断开连接的时候,即使在超时时间内互发心跳。我在小程序里监听到了onSocketClose,然后在app.js里加一个计时器,用connectSocket尝试连接,如果没有连接上,过若干秒(10秒),再次尝试连接,但发现虽然调用成功了,但onSocketOpen并没有监听到websocket打开,这是什么原因呢?是不是我前一次连接还没完全完成,没有返回数据,第二次尝试连接就已经开始了造成的?如果是,该如何设置过多久再次尝试连接呢?或者在onSocketError里处理再次连接?但onSocketError里面也并没有明确的返回信息能让我确定需要再次连接。要么就是onSocketClose和onSocketError里面各进行一次连接尝试?
2017-11-28 - 关于sendSocketMessage发送到服务端的乱码问题
调用的是同一个方法,但在服务端有时候就会收到乱码,有时候正常。但是就是因为乱码问题,导致解析json会解析不出来,进而导致服务端程序的一些处理逻辑出现问题,这是什么原因呢? 正常的数据: [图片] 不正常的数据: [图片] 小程序代码: [图片]
2017-11-17 - 关于websocket的onSocketClose
onSocketClose是用于监听websocket连接断开事件的。但是我很好奇,在没有主动调用closeSocket而监听到websocket断开了的时候,为什么在这前面没有去自动调用closeSocket方法?至少是不是可以将websocket的一些状态重置一下,也不至于监听到了被动断开websocket时,还需要小程序开发者调用一下closeSocket,才能让websocket再次connect,否则会提示此连接还未关闭。
2017-11-13 - 关于websocket的连接稳定性问题
服务端用的nginx作为代理,用xampp作为webserver,php写的websocket服务端。 不知为何,每次小程序连接websocket之后,经过1分钟左右时间(不一定的时间间隔),websocket就会自动断开。 我在app.js中做了定时监听,断开了就进行重新连接。但是我还是很奇怪为什么不能一直连接,只要网络本身是良好状态。 如图所示: [图片]
2017-11-13 - 增加自定义组件后的微信小程序bug
自从更新后,有个布局在电脑上显示没有问题,但在手机上显示就有问题了。具体是这样的。 最外层的view class="container" 设置为绝对定位,top:0 ;left:0;width:100%;padding-top:0 然后在container中加入一层,设置view class="head"为相对定位,top:0;left:0 出现的问题就是在电脑上显示的位置在顶部 ,查看样式,top=0的;而在手机上显示的top=96px
2017-11-09