-
Creator 版本: 2.4.5
-
目标平台: 头条小游戏,web
本人使用nodejs写了一个websocket服务端并部署到阿里云ECS,端口打开了,DNS解析也已经加了A记录,nginx也新增了server配置,如下:
server {
listen 443 ssl;
server_name xx.xx.com;
ssl_certificate "/etc/pki/nginx/server.pem";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_verify_client off;
location / {
proxy_pass http://xx.xx.xx.xx:31697/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 500;
proxy_http_version 1.1;
# ws 协议专用头
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
server {
listen 80;
server_name xx.xx.com;
location / {
proxy_pass http://xx.xx.xx.xx:31697/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
proxy_read_timeout 500;
proxy_http_version 1.1;
# ws 协议专用头
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
使用postman或wscat工具通过域名都能连接服务端,但是使用Cocos creator内置的Websocket或其它vue方式连接nginx中配置的域名不能连接,
本地websocket代码
this._websocket = new WebSocket(ws://xx.xxx.com);
this._websocket = new WebSocket(wss://xxs.xxx.com);
错误如下图

只有改用域名+端口方式才能连接成功
this._websocket = new WebSocket(ws://xx.xxx.com:3002);这种方式可以连接成功
但这样在手机端的浏览器还是连接失败,本人受困此问题数日,求知道的大哥帮解答一下原因,不胜感激。