收藏
回答

关于websocket的onSocketClose

问题模块
API和组件

onSocketClose是用于监听websocket连接断开事件的。但是我很好奇,在没有主动调用closeSocket而监听到websocket断开了的时候,为什么在这前面没有去自动调用closeSocket方法?至少是不是可以将websocket的一些状态重置一下,也不至于监听到了被动断开websocket时,还需要小程序开发者调用一下closeSocket,才能让websocket再次connect,否则会提示此连接还未关闭。

最后一次编辑于  2017-11-13  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • Can🌴
    Can🌴
    2017-11-13

    你好,感谢反馈,在开发工具中websocket自动断开,未重置连接状态。我们会在后续版本中进行修复,敬请关注。

    2017-11-13
    赞同
    回复
  • 洪小工RAY
    洪小工RAY
    2018-02-07

    是不是这个问题:

    如果不显式的调tunnel.close(),是不会回调业务服务器端的onSocketClose()?


    现在每隔一段时间会互相发ping pong,但如果客户端如果失联了,没法在服务器主动清理现场。

    2018-02-07
    赞同
    回复
  • 彭享
    彭享
    2017-11-17

    我这边发送到服务端的json数据也有时候会在最后面有乱码,但不会总有,是偶尔,我也很奇怪,好在这些乱码出现在json结束的大括号后面,不影响解析json数据

    2017-11-17
    赞同
    回复
  • ~淮右布衣~
    ~淮右布衣~
    2017-11-16

    在使用websocket发送jason数据时,打印的日志中jason数据是完整的。但服务器收到的jason数据在最后几个字节却是乱码导致解析失败。用JMeter压测工具测试服务器发送同样的数据一致运行良好。不知是不是微信小程序的websocket实现在发送用户数据的时候进行了什么过滤或编码?

    微信小程序端:

    wx.sendSocketMessage({

    data:msg

    });

    console.log('msg sent: ' + msg);//这里的信息是正常的

    显示:{"TerminalType":2,"TerminalId":0,"TimeStamp":0,"RequestedTerminalId":1,"DataType":1}


    服务器端(使用了rapidjson1.1.0):

    服务器开始的时候正常,收几个包后就异常,接收的数据长度是对的,但信息却成了:

    pay_load:{"TerminalType":2,"TerminalId":0,"TimeStamp":0,"RequestedTerminalId":1Bm▒D.▒\*▒_2



    2017-11-16
    赞同
    回复