Когда я попытался запустить приложение чата с локального хоста, подключенного к базе данных MySQL, которая была закодирована с помощью PHP через WebSocket, она прошла успешно.
Кроме того, когда я пытался запустить с терминала PuTTY, вошедшего в учетные данные SSH, он отображался как Сервер запущен с портом # 8383
somelabz@bh-ht-3 [~/public_html/chatroom-php-mysql/bin]# php server.php
Server Started.somelabz@bh-ht-3 [~/public_html/chatroom-php-mysql/bin]# php server.php
Server Started.
Сервер запускается с любого порта #за исключением 8080. Так как я решил открыть порт с 8383, в результате он успешно запустился
С портом 8080 error_log генерировался как
[07-Oct-2018 06:11:02 Etc/GMT] PHP Fatal error: Uncaught RuntimeException: Failed to listen on "tcp://0.0.0.0:8080": Address already in use in /home/somelabz/public_html/chatroom-php-mysql/vendor/react/socket/src/TcpServer.php:164
Stack trace:
#0 /home/somelabz/public_html/chatroom-php-mysql/vendor/react/socket/src/Server.php(36): React\Socket\TcpServer->__construct('tcp://0.0.0.0:8...', Object(React\EventLoop\StreamSelectLoop), Array)
#1 /home/somelabz/public_html/chatroom-php-mysql/vendor/cboden/ratchet/src/Ratchet/Server/IoServer.php(59): React\Socket\Server->__construct('0.0.0.0:8080', Object(React\EventLoop\StreamSelectLoop))
#2 /home/somelabz/public_html/chatroom-php-mysql/bin/server.php(15): Ratchet\Server\IoServer::factory(Object(Ratchet\Http\HttpServer), 8080)
#3 {main}
thrown in /home/somelabz/public_html/chatroom-php-mysql/vendor/react/socket/src/TcpServer.php on line 164
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()
)
),
8383
);
$server->run();
chatroom.php
// For other computers to connect, you will probably need to change this to your LAN IP or external IP,
// alternatively use: gethostbyaddr(gethostbyname($_SERVER['SERVER_NAME']))
// $Server->wsStartServer($_SERVER['SERVER_ADDR'], 9300);
var conn = new WebSocket('ws://localhost:8383');
<script type="text/javascript">
$(document).ready(function(){
var conn = new WebSocket('ws://localhost:8383');
conn.onopen = function(e) {
console.log("Connection established!");
};
...
</script>
Проверка консолиинформацию из браузера, которую я использовал для получения следующих журналов, когда я пытался переключить / изменить имя домена, а также порт #, играющий с перестановками и комбинациями из файла chatroom.php
и server.php
var conn = новый WebSocket ('ws: // localhost: 8383');
var conn = новый WebSocket ('ws: //192.197.161.61/~somelabz: 8383');
var conn = новый WebSocket('ws: //somelabz.ml/chatroom-php-mysql: 8383');
var conn = new WebSocket ('ws: //somelabz.ml: 8383 /');
var conn = new WebSocket ('ws: //192.197.161.61: 8383 /');
Раньше я получал следующие ошибки:
chatroom.php: 73 Сбой подключения WebSocket к 'ws: //somelabz.ml: 8383 /': ошибка при установлении соединения: net :: ERR_CONNECTION_TIMED_OUT
chatroom.php: 73 Подключение WebSocket к 'ws: //192.197.161.61/~somelabz:8383 'не удалось: ошибка во время рукопожатия WebSocket: неожиданный код ответа: 404
Соединение WebSocket с' ws: //somelabz.ml/chatroom-php-mysql: 8383 'не удалось:Ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 404
Ошибка подключения WebSocket к 'ws: //somelabz.ml: 8383 /': Ошибка при установлении соединения: net :: ERR_CONNECTION_TIMED_OUT
Соединение WebSocketto 'ws: //192.197.161.61: 8383 /' не удалось: ошибка при установлении соединения: net :: ERR_CONNECTION_TIMED_OUT
Как мне разрешить / преодолеть при подключении его с WebSocket
, особенно с хост-сервера с таким доменным именем, как http://somelabz.ml/chatroom-php-mysql
var conn = new WebSocket('ws: // localhost: 8383');
Это были файлы композитора, созданные после выполнения и добавления папки src $composer require cboden/ratchet
composer.json (Вкл.Сервер)
{
"autoload": {
"psr-4": {
"MyApp\\": "src"
}
},
"require": {
"cboden/ratchet": "^0.4.1"
}
}
composer.json (на локальном хосте)
{
"autoload": {
"psr-4": {
"MyApp\\": "src"
}
},
"require": {
"cboden/ratchet": "^0.4.3"
}
}