Laravel Websockets OnSubscribe
// Add websocket routes "App\Providers\RouteServiceProvider.php"
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->app->singleton('websockets.router', function () {
return new Router();
});
}
// Create WebSocket Router "App\WebSockets\Route.php"
class Router extends \BeyondCode\LaravelWebSockets\Server\Router
{
public function echo()
{
$this->get('/app/{appKey}', WebSocketHandler::class);
$this->post('/apps/{appId}/events', TriggerEventController::class);
$this->get('/apps/{appId}/channels', FetchChannelsController::class);
$this->get('/apps/{appId}/channels/{channelName}', FetchChannelController::class);
$this->get('/apps/{appId}/channels/{channelName}/users', FetchUsersController::class);
}
}
// Create WebSocket Router "App\WebSockets\WebSocketHandler.php"
class WebSocketHandler extends \BeyondCode\LaravelWebSockets\WebSockets\WebSocketHandler
{
public function onMessage(ConnectionInterface $connection, MessageInterface $message)
{
parent::onMessage($connection, $message);
$message = json_decode($message->getPayload(), true);
if ($message['event'] === 'pusher:subscribe') {
// Your code here...
}
}
}
TheDutchScorpion