Задать вопрос
@polzovatel_vue

Как установить websocket на Lumen (Laravel)?

Не могу решить такую проблему:
Установил на Lumen паект websocket
Взял самые обычные example примеры,

Server:
require_once('vendor/autoload.php');

$socket = new \HemiFrame\Lib\WebSocket\WebSocket("localhost", 8080);
$socket->on("receive", function($client, $data) use($socket) {
	foreach ($socket->getClients() as $item) {
        /* @var $item \HemiFrame\Lib\WebSocket\Client */
		if ($item->id != $client->id) {
			$socket->sendData($item, $data);
		}
	}
});
$socket->startServer();


Client
require_once('vendor/autoload.php');

$socket = new \HemiFrame\Lib\WebSocket\WebSocket('localhost', 8080);
$socket->on("receive", function($client, $data) use($socket) {
});
$client = $socket->connect();
if ($client) {
	$socket->sendData($client, "Message");
	$socket->disconnectClient($client);
}


установил порт 8080, между собой они работают как надо, клиент отправляет, сервер принимает...

Пробую в js:
var conn = new WebSocket('ws://sender.com:8080/api/echo');
  console.log(conn);

Выдает: WebSocket connection to 'ws://sender.com:8080/api/echo' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
(Пробовал все самые разные вариации, даже вместо localhost на сервере вставлял "sender.com:8080/api/echo", с http и https, с ws и wss, Localhost:8080/api/echo ...)

Если я ставлю стандартный 80 порт, выдает: WebSocket connection to 'ws://sender.com/api/echo' failed: Error during WebSocket handshake: Unexpected response code: 404
Видимо роутинг срабатывает и не дает, даже если роут зарегать, выдаст такую же ошибку, только со статус кодом 200.

Как быть в таком случае?

PS. Ссылки заменены от ботов, прилажуха в разработке
  • Вопрос задан
  • 807 просмотров
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (2)