Anonymous
Как транслировать в другое приложение с помощью реверберации laravel?
Сообщение
Anonymous » 13 ноя 2024, 17:19
У меня проблема с настройкой нескольких приложений для laravel reverb. Только одно приложение слушает трансляцию, а другое нет.
Итак, у меня есть настройка laravel reverb.
broadcasting.php< /p>
Код: Выделить всё
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
// 'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => env('PUSHER_ENCRYPTED'),
'host' => env('PUSHER_HOST', 'pusher.runcloud.io'),
'port' => env('PUSHER_PORT', 443),
'scheme' => env('PUSHER_SCHEME', 'https'),
],
],
.env
Код: Выделить всё
REVERB_APP_ID=app
REVERB_APP_KEY=app_key
REVERB_APP_SECRET=app_secret
REVERB_HOST=laravel-reverb.test
REVERB_PORT=8080
REVERB_SCHEME=https
и мой reverb.php
Код: Выделить всё
'apps' => [
'provider' => 'config',
'apps' => [
[
'key' => env('REVERB_APP_KEY'),
'secret' => env('REVERB_APP_SECRET'),
'app_id' => env('REVERB_APP_ID'),
'options' => [
'host' => env('REVERB_HOST'),
'port' => env('REVERB_PORT', 443),
'scheme' => env('REVERB_SCHEME', 'https'),
'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
],
'allowed_origins' => ['*'],
'ping_interval' => env('REVERB_APP_PING_INTERVAL', 60),
'activity_timeout' => env('REVERB_APP_ACTIVITY_TIMEOUT', 30),
'max_message_size' => env('REVERB_APP_MAX_MESSAGE_SIZE', 10_000),
], [
'key' => 'dev_' . env('REVERB_APP_KEY'),
'secret' => 'dev_' .env('REVERB_APP_SECRET'),
'app_id' => 'dev_' .env('REVERB_APP_ID'),
'options' => [
'host' => env('REVERB_HOST'),
'port' => env('REVERB_PORT', 443),
'scheme' => env('REVERB_SCHEME', 'https'),
'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
],
'allowed_origins' => ['*'],
'ping_interval' => env('REVERB_APP_PING_INTERVAL', 60),
'activity_timeout' => env('REVERB_APP_ACTIVITY_TIMEOUT', 30),
'max_message_size' => env('REVERB_APP_MAX_MESSAGE_SIZE', 10_000),
],
],
Поэтому я настраиваю своих клиентов следующим образом
Код: Выделить всё
reverb_Test = new Echo({
broadcaster: 'pusher',
key: 'app_key',
wsHost: 'laravel-reverb.test',
wsPort: '8080',
wssPort: '8080',
encrypted: true,
disableStats: true
})
reverb_Test_Two = new Echo({
broadcaster: 'pusher',
key: 'dev_app_key',,
wsHost: 'laravel-reverb.test',
wsPort: '8080',
wssPort: '8080',
encrypted: true,
disableStats: true
})
reverb_Test.channel('delivery')
.listen('deliver', (e) => {
console.log(e);
});
reverb_Test_Two.channel('delivery')
.listen('deliver', (e) => {
console.log(e);
});
и я тестирую свою трансляцию вот так...
Код: Выделить всё
Broadcast::on('delivery')
->toOthers()
->sendNow();
Broadcast::on('delivery')
->sendNow();
Во время трансляции я получал эти события только на клиенте reverb_test и ничего на клиенте reverb_test_two.
Это лучше всего отметить, что оба клиента успешно подписаны на канал доставки и событие доставки, но только reverb_test получает его.
Почему это так? и как я могу получать сообщения на обоих клиентах или могу ли я выбрать, в какое приложение я хочу транслировать.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... vel-reverb
1731507551
Anonymous
У меня проблема с настройкой нескольких приложений для laravel reverb. Только одно приложение слушает трансляцию, а другое нет. Итак, у меня есть настройка laravel reverb. broadcasting.php< /p> [code]'connections' => [ 'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ // 'cluster' => env('PUSHER_APP_CLUSTER'), 'encrypted' => env('PUSHER_ENCRYPTED'), 'host' => env('PUSHER_HOST', 'pusher.runcloud.io'), 'port' => env('PUSHER_PORT', 443), 'scheme' => env('PUSHER_SCHEME', 'https'), ], ], [/code] .env [code]REVERB_APP_ID=app REVERB_APP_KEY=app_key REVERB_APP_SECRET=app_secret REVERB_HOST=laravel-reverb.test REVERB_PORT=8080 REVERB_SCHEME=https [/code] и мой reverb.php [code]'apps' => [ 'provider' => 'config', 'apps' => [ [ 'key' => env('REVERB_APP_KEY'), 'secret' => env('REVERB_APP_SECRET'), 'app_id' => env('REVERB_APP_ID'), 'options' => [ 'host' => env('REVERB_HOST'), 'port' => env('REVERB_PORT', 443), 'scheme' => env('REVERB_SCHEME', 'https'), 'useTLS' => env('REVERB_SCHEME', 'https') === 'https', ], 'allowed_origins' => ['*'], 'ping_interval' => env('REVERB_APP_PING_INTERVAL', 60), 'activity_timeout' => env('REVERB_APP_ACTIVITY_TIMEOUT', 30), 'max_message_size' => env('REVERB_APP_MAX_MESSAGE_SIZE', 10_000), ], [ 'key' => 'dev_' . env('REVERB_APP_KEY'), 'secret' => 'dev_' .env('REVERB_APP_SECRET'), 'app_id' => 'dev_' .env('REVERB_APP_ID'), 'options' => [ 'host' => env('REVERB_HOST'), 'port' => env('REVERB_PORT', 443), 'scheme' => env('REVERB_SCHEME', 'https'), 'useTLS' => env('REVERB_SCHEME', 'https') === 'https', ], 'allowed_origins' => ['*'], 'ping_interval' => env('REVERB_APP_PING_INTERVAL', 60), 'activity_timeout' => env('REVERB_APP_ACTIVITY_TIMEOUT', 30), 'max_message_size' => env('REVERB_APP_MAX_MESSAGE_SIZE', 10_000), ], ], [/code] Поэтому я настраиваю своих клиентов следующим образом [code]reverb_Test = new Echo({ broadcaster: 'pusher', key: 'app_key', wsHost: 'laravel-reverb.test', wsPort: '8080', wssPort: '8080', encrypted: true, disableStats: true }) reverb_Test_Two = new Echo({ broadcaster: 'pusher', key: 'dev_app_key',, wsHost: 'laravel-reverb.test', wsPort: '8080', wssPort: '8080', encrypted: true, disableStats: true }) reverb_Test.channel('delivery') .listen('deliver', (e) => { console.log(e); }); reverb_Test_Two.channel('delivery') .listen('deliver', (e) => { console.log(e); }); [/code] и я тестирую свою трансляцию вот так... [code]Broadcast::on('delivery') ->toOthers() ->sendNow(); Broadcast::on('delivery') ->sendNow(); [/code] Во время трансляции я получал эти события только на клиенте reverb_test и ничего на клиенте reverb_test_two. Это лучше всего отметить, что оба клиента успешно подписаны на канал доставки и событие доставки, но только reverb_test получает его. Почему это так? и как я могу получать сообщения на обоих клиентах или могу ли я выбрать, в какое приложение я хочу транслировать. Подробнее здесь: [url]https://stackoverflow.com/questions/79185307/how-to-broadcast-to-different-app-using-laravel-reverb[/url]