我无法在 EC2 中启动与 WebSocket 的连接

我无法在 EC2 中启动与 WebSocket 的连接

我确实需要有关 websockets 的帮助,最近我在 ec2 中的网站中使用了 SSL(Let's Encrypt),并且我使用路由 53 进行路由,并且该网站可以完美地与 SSL 和我的 DNS 配合使用,但我无法启动与 WebSockets 和 HTTPS 的连接,它只能与 HTTP 配合使用,使用端口 8080,当我尝试在端口 8443 下启动与 HTTPS 的连接时,Google 控制台显示:

与“mysite”的 WebSocket 连接失败:WebSocket 打开握手超时

我真的不知道该怎么办了,在我看来,编码部分一切都没问题,但它看起来真的是一个涉及 Apache 和 SSL 的问题,请帮帮我,我被这个问题困扰了 2 周,我不知道该怎么办

AWS:

Ports   Protocol    Source  SecurityGroup
80  tcp 0.0.0.0/0, ::/0 ✔
8080    tcp 0.0.0.0/0, ::/0 ✔
4433    tcp 0.0.0.0/0, ::/0 ✔
22  tcp 0.0.0.0/0   ✔
8443    tcp 0.0.0.0/0, ::/0 ✔
3000    tcp 0.0.0.0/0   ✔
443 tcp 0.0.0.0/0, ::/0 ✔

PHP的:

<?php
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use Anne\Socket\Chat;

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

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

    $server->run();

詹姆斯:

var conn = new WebSocket('wss://example.com:8433/chat.php'); //Using port 8433, it doesn't works as any port, I already tried a lot of ports

阿帕奇

Listen 80

    <VirtualHost *:80>
        DocumentRoot "/var/www/html"
        ServerName "example.com"
        ServerAlias "www.example.com"
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.example.com [OR]
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    
    ProxyPreserveHost On
    
    ProxyPass /chat.php/ ws://example.com:8433/
    ProxyPassReverse /chat.php/ ws://example.com:8433/
    </VirtualHost>

相关内容