我正在开发一个使用 socket.io 进行匹配的聊天应用程序。使用 Windows 机器和 Android 设备的客户端能够建立 websocket 连接。但是,在桌面和 iOS 上使用 Safari 的客户端无法同时使用 Safari 和 Chrome 进行连接。我的应用程序从 socket.io 客户端 -> NGINX 代理 -> Node.js 套接字服务器
我已经能够通过 Mac 检查 iOS 浏览器来追踪错误,并且显示此错误 [Error] WebSocket network error: The operation couldn’t be completed. (OSStatus error -9836.)

在对错误进行了一些研究之后,我发现 Safari 在创建安全的 websocket 连接时很挑剔。我目前正在使用 CloudFlare 颁发的证书和密钥,该证书和密钥位于我的 NGINX 配置中。我还尝试将凭据添加到我的节点服务器,但同样的问题仍然存在。这是 NGINX 服务器块:
server {
listen 80;
listen 443;
ssl on;
ssl_certificate /var/site-certificates/website.com/cloudflare.website.com.pem;
ssl_certificate_key /var/site-certificates/website.com/cloudflare.website.com.key;
ssl_protocols TLSv1.3;
server_name chat0.website.com;
location / {
proxy_http_version 1.1;
# proxy_ssl_certificate /var/site-certificates/website.com/cloudflare.website.com.pem; //tried with and …Run Code Online (Sandbox Code Playgroud)