当前位置: 代码网 > it编程>游戏开发>unity > unity小程序websocket:nginx配置https (wss)转http (ws)及其他问题解决

unity小程序websocket:nginx配置https (wss)转http (ws)及其他问题解决

2024年08月03日 unity 我要评论
为了服务器网络的通用性,我们在实现移动端的游戏转微信小程序使用websocket。对于微信小程序官方给出的技术标准是必须使用https+域名的访问方式(使用websocket也必须是wss即:支持https的websocket),但是https的key稀缺性和我们的服务器是分布式部署的,不可能在每一个于客户端链接服务器都配置key,所以服务器仅支持http的websocket即ws基于此,我们需要通过nginx代理来处理转发的问题。这样https的证书只需要在nginx中配置,同时在nginx中配置wss。

目录

前言

实际运用场景

处理流程如下

nginx配置ssl和wss

配置过程中遇到的问题

1、无法连接服务器 

  2、通过ip可以访问,域名却不行

     问题描述

      解决

3、如何判断该域名是否备案了


前言

        为了服务器网络的通用性,我们在实现移动端的游戏转微信小程序使用websocket。对于微信小程序官方给出的技术标准是必须使用https+域名的访问方式(使用websocket也必须是wss即:支持https的websocket),但是https的key稀缺性和我们的服务器是分布式部署的,不可能在每一个于客户端链接服务器都配置key,所以服务器仅支持http的websocket即ws

        基于此,我们需要通过nginx代理来处理转发的问题。  这样https的证书只需要在nginx中配置,同时在nginx中配置wssws的就可以了。


实际运用场景

1、 unity客户端小程序的wss协议实际是websocket+ssl

2、利用nginx代理wss协议转发ws协议

3、java服务器收到代理的ws协议并进行逻辑处理

处理流程如下

        


nginx配置ssl和wss

 这样小程序的new websocket(wss://域名/login)实际访问的就是http://127.0.0.1:82地址服务器


配置过程中遇到的问题

1、无法连接服务器 

       1)路径错误引起

                由于客户端并没有添加域名+/login链接失败问题

       2)服务器触发了链接激活消息即netty的channelactive消息,但是没有给客户返回

               对于客户后端的表现结果是websocket.open的回调没有不能触发

               最终的结果因为nginx配置错误引起,没有配置 

               //加密算法 

               ssl_protocols sslv3 sslv2 tlsv1 tlsv1.1 tlsv1.2;
               ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:high:!anull:!md5:!rc4:!dhe;  
 

                //头部信息

               proxy_set_header x-real-ip $remote_addr;
               proxy_set_header x-forwarded-for $remote_addr;


  2、通过ip可以访问,域名却不行

     问题描述

        通过ip可以访问,通过域名不行,但是通过cmd中的ping 检查域名没有问题,可以ping通, 

        通 过代码wss://域名访问的时候却不能连接服务器

      解决

        我们怀疑是不是服务器防火墙的问题;怀疑我们java写的websocket问题,其实最终都不是。

        最后查找到是由于域名在腾讯云备案,但是服务器是阿里云的,需要重新在阿里云备案。

        我们的解决方案是换了个在阿里云备案的域名完美解决该问题。当然https的key要与该域名一一对应。

3、如何判断该域名是否备案了

        打开浏览器输入你的域名,如果出现以下页面,那么你的域名大概率是没有备案的

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com