【问题标题】:GET https://mydomain.server:6001/socket.io/socket.io.js net::ERR_CONNECTION_REFUSED获取 https://mydomain.server:6001/socket.io/socket.io.js 网络::ERR_CONNECTION_REFUSED
【发布时间】:2017-03-17 20:16:31
【问题描述】:

我第一次尝试使用 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.

【问题讨论】:

  • 我的服务器上也遇到了同样的问题。但它与https无关。我的域有 http 协议。你能告诉我错误的可能性吗?

标签: node.js laravel socket.io port laravel-echo


【解决方案1】:

我找到了解决办法。

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

"protocol": "https",
"sslCertPath": "path_to/server.crt",
"sslKeyPath": "path_to/server.key"

【讨论】:

    【解决方案2】:

    也许这会对你有所帮助。 首先,当您连接到套接字并且站点安装了 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);
    

    【讨论】:

    • 如果我不使用 Laravel Echo Server,它可以帮助我。但它绝对可以让我知道如何使用 Laravel Echo Server 解决这个问题。我已经找到了解决方案,如果您有兴趣,请查看下面的答案。谢谢
    猜你喜欢
    • 2016-03-18
    • 1970-01-01
    • 2019-11-23
    • 2013-04-26
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多