问题描述
我的套接字io服务器没有ssl证书,因此它仅适用于htpp 另一方面,我的网页上有ssl证书,
因此,当我在此页面(在https中)连接到套接字Web服务器(在http中)时,它会在https中自动更改,因此必然会出现错误
连接:
//Here I'm connecting in http
const socket = io("http://XXX.XX.XXX.XX:XXXX",{secure:false})
这里有说明问题的图片,我写了“ http:// xxxxxxxx”,并且在控制台中出现错误:
//But in the error we see that change and it's try to connect with https
"GET https://XXX.XX.XXX.XX:XXXX/socket.io/?EIO=3&transport=polling&t=NFiqorQ
net :: ERR_SSL_PROTOCOL_ERROR"
PS:当我尝试用wamp连接到websocket时(在http中),这是可行的...
如果有人知道如何强制连接到http,请帮助我
Client side error Client side conection
解决方法
确保它与您的服务器有关。我只与nginx合作,所以我可以谈论一下,但我肯定它与Apache类似。我在nginx中创建了虚拟服务器块,其中一个是针对启用了ssl和证书的文件服务器。之后,我为套接字设置了一个块,并将服务器设置为仅监听http。
upstream socket {
server 127.0.0.1:2095;
server 127.0.0.1:80 backup;
keepalive 15;
}
server {
listen 80;
listen [::]:80;
root /var/www/socket/;
..... and so on
我总是使用子域来连接套接字,例如socket.domain.com,但这不是必需的。
相同,但启用了ssl并链接了证书,这是我为文件服务器所做的,因此它工作得很好。
var HOST = '144.125.....';
const socket = io(HOST,{secure:true})