Я создаю службу websocket в моей версии приложения Laravel версии 6.2 и использую пакет laravel -websockets версии 1.3 (https://github.com/beyondcode/laravel-websockets).
Итак, все работает нормально, но я настраиваю мой websocket в соответствии с документацией, чтобы переопределить методы onOpen, onClose, onError и onMessage. После этого я тестирую с клиентом все эти методы, и они все еще работают нормально (onOpen, onClose, onError), за исключением метода onMessage, этот последний выполняет следующее исключение:
Exception `ErrorException` thrown: `Undefined property: Ratchet\Server\IoConnection::$app`
Unknown app id: exception `ErrorException` thrown: `Undefined property: Ratchet\Server\IoConnection::$app`.
Я не знаю, что Бывает, но вот мой собственный класс websocket для отлова клиентских событий:
<?php
namespace App\Websocket;
use Ratchet\ConnectionInterface;
use Ratchet\RFC6455\Messaging\MessageInterface;
use Ratchet\WebSocket\MessageComponentInterface;
class Handler implements MessageComponentInterface
{
public function onOpen(ConnectionInterface $connection)
{
// TODO: Implement onOpen() method.
\Log::debug('ON OPEN');
// \Log::debug([$connection]);
}
public function onClose(ConnectionInterface $connection)
{
// TODO: Implement onClose() method.
\Log::debug('ON CLOSE');
}
public function onError(ConnectionInterface $connection, \Exception $e)
{
// TODO: Implement onError() method.
\Log::debug('ON ERROR');
// \Log::debug([$connection]);
\Log::debug($e);
}
public function onMessage(ConnectionInterface $connection, MessageInterface $msg)
{
// TODO: Implement onMessage() method.
\Log::debug('ON MESSAGE');
}
}