Задать вопрос
@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
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
А так var conn = new WebSocket('ws://sender.com:8080/'); пробовали?
Ответ написан
@polzovatel_vue Автор вопроса
Получилось сделать следующее:

Я установил на сервере url
$socket = new \HemiFrame\Lib\WebSocket\WebSocket('sender.com', 8080);

и в js установил аналогичный url
var conn = new WebSocket('ws://sender.com:8080/');

как я сразу не догадался *facepalm*.

Сейчас немного другое:
5dfa1354dfe0f700010141.png
ошибку не дает, но и подключения нет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы