小程序
小游戏
企业微信
微信支付
扫描小程序码分享
信官方:你好。
我们之前的代码没做过任何改动,但是最近苹果手机无法正常使用websocket服务。经查,wx.connectSocket 后,苹果手机不触发onSocketOpen。但是在开发者工具上是正常的,安卓手机目前也是正常的。我们在想,是不是和ios14系统有关,请官方解决下,谢谢了。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
一般遇到这种问题 大概率是后端问题,以下是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));
同问,请问什么时候能解决
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
一般遇到这种问题 大概率是后端问题,以下是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));
同问,请问什么时候能解决
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
代码片段https://developers.weixin.qq.com/s/Pxdmosm87hlM