收藏
回答

wx.connectSocket 后,苹果手机不触发onSocketOpen?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.onSocketOpen 微信iOS客户端 7.0.14 2.12.2

信官方:你好。

我们之前的代码没做过任何改动,但是最近苹果手机无法正常使用websocket服务。经查,wx.connectSocket 后,苹果手机不触发onSocketOpen。但是在开发者工具上是正常的,安卓手机目前也是正常的。我们在想,是不是和ios14系统有关,请官方解决下,谢谢了。


最后一次编辑于  2020-10-31
回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员-Riven
    社区技术运营专员-Riven
    2020-10-27

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-10-27
    有用
    回复 7
    • 猫爪
      猫爪
      2020-10-29
      有问题的机型是苹果XR,微信版本号7.0.17,基础库2.13.2 ,操作系统ios13.7
      代码片段https://developers.weixin.qq.com/s/Pxdmosm87hlM
      2020-10-29
      回复
    • 社区技术运营专员-Riven
      社区技术运营专员-Riven
      2020-10-29回复猫爪
      请在复现问题后在手机微信上传日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供出现问题的微信号,出现问题的时间点(具体到分钟)
      2020-10-29
      回复
    • 猫爪
      猫爪
      2020-10-30
      微信号:billygate ,时间大约19:22分
      2020-10-30
      1
      回复
    • 猫爪
      猫爪
      2020-10-30
      报“未能完成该操作。操作超时”
      2020-10-30
      回复
    • 猫爪
      猫爪
      2020-10-30
      而且有时正常,有时报错,大概50%的概率
      2020-10-30
      回复
    查看更多(2)
  • 乾浩
    乾浩
    06-02
    f,那怎么啊啊啊啊啊呜呜呜呜呜呜呜呜b day at my new one么营业执照哦学习一下111恶语相向挖阿达我下额外哦哟哟11现在11余额也11!99929391919329991913199131919对呀11啊呀呀11现在11阿姨111现在11呀1111111
    06-02
    有用
    回复
  • 小孟丶666
    小孟丶666
    04-14

    一般遇到这种问题 大概率是后端问题,以下是Java解决方法:

    Netty 解决wss通信失败问题

    javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案

    这个是jdk导致的,jdk里面有一个jce的包,安全性机制导致的访问https会报错,官网上有替代的jar包,换掉就好了

    目录 %JAVA_HOME%\jre\lib\security里的local_policy.jar,US_export_policy.jar

    JDK7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

    JDK8 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

    首先证书 从阿里云或腾讯云申请的ssl 域名地址

    后端采用netty作为通信框架

    netty初始化类要加上jks证书

    代码:

    public static SSLContext createSSLContext(String password) throws Exception {

    KeyStore ks = KeyStore.getInstance("JKS"); /// "JKS"

    // InputStream ksInputStream = new FileInputStream("/home/xx/xx/game.jks"); /// 证书存放地址

    InputStream ksInputStream = new FileInputStream("D:\\game.jks"); /// 证书存放地址

    ks.load(ksInputStream, password.toCharArray());

    //KeyManagerFactory充当基于密钥内容源的密钥管理器的工厂。

    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());//getDefaultAlgorithm:获取默认的 KeyManagerFactory 算法名称。

    kmf.init(ks, password.toCharArray());

    //SSLContext的实例表示安全套接字协议的实现,它充当用于安全套接字工厂或 SSLEngine 的工厂。

    SSLContext sslContext = SSLContext.getInstance("TLS");

    sslContext.init(kmf.getKeyManagers(), null, null);

    return sslContext;

    }



    SSLEngine engine = SslUtil.createSSLContext("password").createSSLEngine();

    engine.setUseClientMode(false);

    engine.setNeedClientAuth(false);

    ch.pipeline().addLast(new SslHandler(engine));

    04-14
    有用
    回复
  • A钱奔
    A钱奔
    03-18

    同问,请问什么时候能解决

    03-18
    有用
    回复
登录 后发表内容
问题标签