【问题标题】:WebSocket connection to failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUTWebSocket 连接失败:连接建立错误:net::ERR_CONNECTION_TIMED_OUT
【发布时间】:2019-08-30 21:06:33
【问题描述】:

大家好

我正在使用棘轮构建一个聊天应用程序并将数据保存到 mysql 数据库。在 localhost 上一切正常并建立连接。

现在我已在实时服务器上加载应用程序并使用 SSH (Putty) 登录,然后导航到 php bin/chat-server.php,然后在浏览器控制台上出现此错误:

到“wss://donorgametes.com:8080/”的 WebSocket 连接失败:错误 在连接建立中:net::ERR_CONNECTION_TIMED_OUT

这是我的应用程序网址

https://donorgametes.com/MyApp/

我的代码:

<script>
    var conn = new WebSocket('wss://donorgametes.com:8080');
    conn.onopen = function (e) {
        console.log("Connection established!");

    };

    conn.onmessage = function (e) {
        showMessage(e.data, 'Others');
    };

    document.querySelector('#chat-form').addEventListener('submit', function (e) {
        e.preventDefault();

        var messageElement = document.querySelector('#message');
        var message = messageElement.value;

        var messageData = {
            'userId': '12',
            'content': message
        }
        var messageDataJson = JSON.stringify(messageData);

        conn.send(JSON.stringify(messageDataJson));
        showMessage(message, 'Me');
        messageElement.value = '';
    });

    function showMessage(msg, sender) {
        var messageItem = document.createElement('li');
        var className = 'list-group-item';

        if (messageItem.classList)
            messageItem.classList.add(className);
        else
            messageItem.className += ' ' + className;

        messageItem.innerHTML = '<strong>' + sender + ': </strong>' + msg;
        document.querySelector('#chat-area > ul').appendChild(messageItem);
    }
</script>

聊天服务器

use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;

require dirname(__DIR__) . '/vendor/autoload.php';

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new Chat()
        )
    ),
    8080
);

$server->run();

如何在实时服务器上运行它并获得连接?我必须遵循哪些步骤?

【问题讨论】:

标签: php websocket ratchet


【解决方案1】:

检查您的应用页面源后,我发现您使用localhost 进行连接,行号:38

var conn = new WebSocket('wss://localhost:8080');

错了,你应该使用自己的域名。

第二件事是在检查您的域上的端口转发后,我发现端口 8080 现在已被阻止。因此,您最好让您的托管服务提供商在IPTABLES 中为传入连接打开端口,或者如果您有root 访问权限,请尝试Article,它可能会帮助您允许端口转发。

【讨论】:

【解决方案2】:

在您的网站上,您使用的是不同的端口 (35814)。
因此,设置正确的参数可能会有些混乱。

<script>
    var conn = new WebSocket('wss://donorgametes.com:35814');
    conn.onopen = function (e) {
        console.log("Connection established!");

    };

    conn.onmessage = function (e) {
        showMessage(e.data, 'Others');
    };

    document.querySelector('#chat-form').addEventListener('submit', function (e) {
        e.preventDefault();

        var messageElement = document.querySelector('#message');
        var message = messageElement.value;

        var messageData = {
            'userId': '12',
            'content': message
        }
        var messageDataJson = JSON.stringify(messageData);

        conn.send(JSON.stringify(messageDataJson));
        showMessage(message, 'Me');
        messageElement.value = '';
    });

    function showMessage(msg, sender) {
        var messageItem = document.createElement('li');
        var className = 'list-group-item';

        if (messageItem.classList)
            messageItem.classList.add(className);
        else
            messageItem.className += ' ' + className;

        messageItem.innerHTML = '<strong>' + sender + ': </strong>' + msg;
        document.querySelector('#chat-area > ul').appendChild(messageItem);
    }
</script>

显示的错误适合脚本中的端口:

(索引):38 WebSocket 连接到“wss://donorgametes.com:35814/”失败:连接建立错误:net::ERR_CONNECTION_TIMED_OUT

【讨论】:

  • 问题依旧,尝试使用不同的端口
  • 好的,我认为有关您的配置的一些重要数据可能丢失了,但我在 SO 上搜索了Ratchet Websocket log,如果日志文件显示一些有用的提示,我会看看.此外,我找到了这个具体的答案,也许它对你有用:stackoverflow.com/a/17905105/1019850。目前这只是猜测,因此您必须添加更多细节,也许在这里看到解决方案也很高兴。
  • 关于端口的一点:网络服务器和应用程序自然必须使用相同的端口。以上是您配置 8080 的网络服务器,但可能您已经在我的回答之后检查过了。
猜你喜欢
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 2014-12-19
  • 2016-01-29
  • 2016-03-11
  • 2019-03-21
  • 1970-01-01
相关资源
最近更新 更多