我第一次尝试使用socket.io。 我正在使用Laravel 5.4,Laravel Echo和NodeJs server for Laravel Echo broadcasting with Socket.io.。
我设法让它在我的本地工作,因为它应该工作。但是在服务器上我得到了 错误
GET https://mydomain.server:6001/socket.io/socket.io.js net::ERR_CONNECTION_REFUSED
可能是浏览器无法访问该端口或其他什么?
我还试图访问该文件
curl -X GET https://mydomain.server:6001/socket.io/socket.io.js
命令。
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated
。
答案 0 :(得分:0)
我找到了解决方案。
只需在 laravel-echo-server.json
中设置protocol,sslCertPath和sslKeyPath参数"protocol": "https",
"sslCertPath": "path_to/server.crt",
"sslKeyPath": "path_to/server.key"
答案 1 :(得分:0)
可能这会对你有所帮助。 首先,当您连接到套接字并且网站安装了ssl时,请使用:
socket = io.connect('http://example.com:port', {'force new connection': true, 'secure': true});
在客户端的脚本部分中包含上述部分。
其次在服务器端,例如:server.js说使用
var https = require('https');
var server = https.createServer({
key : fs.readFileSync('./sslkey.key'),
cert : fs.readFileSync('./ssl_certificate.crt')
},app);