Когда я попытался запустить приложение чата с локального хоста, подключенного к базе данных MySQL, которая была закодирована с помощью PHP через WebSocket, это оказалось успешным.
Также, когда я попытался запустить с терминала PuTTY, вошедшего в учетные данные SSH,он отображался как сервер запущен с портом # 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$
Поэтому я попытался изменить порт # 8080 на порт # 8282, он прошел успешно
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
Сохранение сценария оболочкипри запуске откройте несколько окон веб-браузера и откройте консоль Javascript или страницу со следующим 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);
};
Из результатов консоли браузера:
Соединение WebSocket с'ws: //5.160.195.94: 8282 /' не удалось: ошибка при установлении соединения: net :: ERR_CONNECTION_TIMED_OUT
websocket_server.php
<?php
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()
)
),
8282
);
$server->run();
Я даже пытался назначить Public IP и Private IP, но безрезультатно, что это привело к тому же старому результату?
Это были файлы композитора, сгенерированные после выполнения и добавления src fстарше $composer require cboden/ratchet
composer.json (на AmazonWebServer)
{
"autoload": {
"psr-4": {
"MyApp\\": "src"
}
},
"require": {
"cboden/ratchet": "^0.4.1"
}
}
composer.json (на локальном хосте)
{
"autoload": {
"psr-4": {
"MyApp\\": "src"
}
},
"require": {
"cboden/ratchet": "^0.4.3"
}
}
Как мне разрешить / преодолеть при подключении его из WebSocket, особенно с хост-сервера с таким доменным именем, как http://ec3 -193-123-96.eu-central-1.compute.amazonaws.com/
var conn = new WebSocket('ws://localhost:8282');
Из группы безопасности
На вкладке Входящие ![enter image description here](https://i.stack.imgur.com/YrjwU.jpg)
На вкладке Outbound ![enter image description here](https://i.stack.imgur.com/JXKNM.jpg)