@protuberanez

Не работает websocket сервер, почему не находит класс WsServer?

Всем привет!
имеется сайт, часть функционала которого работает на вебсокетах.

На локальном хосте, в OpenServer все работает прекрасно, переношу на хостинг и при запуске файла инициализирующего вебсокет-сервера не выходит ошибки из терминала, но при прямом http обращении к файлу выходит следующая ошибка:

Fatal error: Uncaught Error: Class "Ratchet\Websocket\WsServer" not found in /public_html/server.php:13 Stack trace: #0 {main} thrown in /public_html/server.php on line 13


Непосредственно содержимое данного файла:

<?php

require ("vendor/autoload.php");

use Ratchet\Server\IoServer;
use ChatApp\Chat;
use Ratchet\Http\HttpServer;
use Ratchet\Websocket\WsServer;

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

$server->run();


Composer на хостинге установлен и обновлен, содержимое файла composer:

{
"require": {
"cboden/ratchet": "^0.4.4"
},
"autoload": {
"psr-4": {
"ChatApp\\": "src"
}
}
}


Повторюсь на локалке все отлично работает и всех классов и файлов хватает, в чем может быть проблема?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@protuberanez Автор вопроса
Возможно кому то будет полезно, решение проблемы:
use Ratchet\Websocket\WsServer;

Websocket - слово socket нужно писать с большой буквы: WebSocket )))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
Имхо теги вопроса не правильные.
тут composer и базовые знания о нем.

В принципе на хостинге он может быть не установлен, но тогда все содержимое папки vendor нужно поддерживать а актуальном состоянии самостоятельно. А заливать кучу мелких файлов по фтп дело муторное.
Поэтому проще выполнить консольную команду через терминал на сервере.
Помимо основного файла у компосера есть файл снимок(зафиксированные версии) использованных пакетов - composer.lock
Обязательно залить на хостинг перед
php composer.phar install
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Если папку vendor копировали на сервер, а не через composer ставили, то могли побиться регистры имён файлов, а в unix-окружении они имеют большое значение. Лучше папку vendor снести на сервере и заново поставить через composer install.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы