2

我第一次尝试使用 socket.io。我正在使用 Laravel 5.4、Laravel Echo 和NodeJs 服务器通过 Socket.io 进行 Laravel Echo 广播。.

我设法让它在我的本地工作,因为它应该工作。但是在服务器上我得到一个错误

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

4

2 回答 2

0

我找到了解决方案。

只需在laravel-echo-server.json中设置协议、sslCertPath 和 sslKeyPath 参数

"protocol": "https",
"sslCertPath": "path_to/server.crt",
"sslKeyPath": "path_to/server.key"
于 2017-03-17T11:50:06.040 回答
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);
于 2017-03-17T12:16:31.153 回答