Um problema com uma instância do AWS EC2 ao conectá-lo ao WebSocket

2

Como eu tentei executar o aplicativo de bate-papo do localhost conectado ao banco de dados MySQL que tinha sido codificado com PHP via WebSocket, ele foi bem-sucedido.

Além disso, quando tentei executar a partir do terminal do PuTTY conectado a credenciais de SSH, ele estava sendo exibido como Servidor Iniciado com a porta # 8080

ubuntu@ec3-193-123-96:/home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/server$ php websocket_server.php
PHP Fatal error: Uncaught React\Socket\ConnectionException: Could not bind to tcp://0.0.0.0:8080: Address already in use in /home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/vendor/react/socket/src/Server.php:29
Stack trace:
#0 /home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/vendor/cboden/ratchet/src/Ratchet/Server/IoServer.php(70): React\Socket\Server->listen(8080, '0.0.0.0')
#1 /home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/server/websocket_server.php(121): Ratchet\Server\IoServer::factory(Object(Ratchet\Http\HttpServer), 8080)
#2 {main}
thrown in /home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/vendor/react/socket/src/Server.php on line 29
ubuntu@ec3-193-123-96:/home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/server$

Então eu tentei mudar a porta # 8080 para a porta # 8282, foi bem sucedida

ubuntu@ec3-193-123-96:/home/admin/web/ec3-193-123-96.eu-central-1.compute.amazonaws.com/public_html/application/libraries/server$ php websocket_server.php

Mantendo o script de shell em execução, abra algumas janelas do navegador da Web e abra um console Javascript ou uma página com o seguinte JavaScript:

var conn = new WebSocket('ws://0.0.0.0:8282');
conn.onopen = function(e) {
    console.log("Connection established!");
};

conn.onmessage = function(e) {
    console.log(e.data);
};

Nos resultados do console do navegador:

WebSocket connection to 'ws://5.160.195.94:8282/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT

Eu até tentei atribuir IP público e IP privado, mas nada bom resultou no mesmo resultado antigo?

Como devo resolver / superar ao conectá-lo a partir do WebSocket especialmente do servidor hospedado com o nome de domínio, como link

var conn = new WebSocket('ws://localhost:8383');

Como precisamos configurar o Virtual Server para executar seus próprios serviços em uma instância do AWS EC2?

Atualização:

Do grupo de segurança

  • Na guia Entrada

  • NaguiaSaída

por Nishanth ॐ 17.10.2018 / 08:15

1 resposta

1

Verifique se o EC2 Grupo de segurança associado à Instância permite acesso a todas as suas portas, 8282, 8383, etc.

Além disso, qual é o IP ou hostname ao qual seu código JS tenta se conectar? É a instância do EC2 IP Público / Elástico? Deveria ser. Nada mais funcionará.

Normalmente, o código JS chama de volta ao mesmo servidor que serviu a página da Web, ou seja, se o URL for link , o JavaScrips será então conecte-se novamente a ws: //www.example.com: 8282 / - não codifique os nomes de host, em vez disso, use o que foi usado na URL. Pode ser o endereço IP, o nome canônico ou algum endereço ec2-12-34-56-78.eu-west-2 ..., tudo o que deve funcionar, independentemente do que o usuário entra.

Espero que ajude:)

    
por 17.10.2018 / 08:46