Использование Laravel Reverb с Laravel и Nuxt и несколькими приложениями/слоямиPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Использование Laravel Reverb с Laravel и Nuxt и несколькими приложениями/слоями

Сообщение Anonymous »

У меня странная проблема. Я использую Laravel Herd Pro локально для разработки и добавил сервер Laravel Reverb, используя Services в Herd. Я получил следующие учетные данные:

Код: Выделить всё

REVERB_APP_ID=1001
REVERB_APP_KEY=laravel-herd
REVERB_APP_SECRET=secret
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http
Во внешнем интерфейсе я использую VueJs/Nuxt, а в Nuxt я использую слои для размещения нескольких приложений в одном репозитории. У меня также есть структура packages/core в Nuxt, в которой хранится все, что необходимо совместно использовать через приложения. Теперь я сделал следующее:
Я создал плагин Nuxt «reverb.ts» в packages/core для целей тестирования, например:

Код: Выделить всё

import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

export default defineNuxtPlugin(nuxtApp => {
console.log('Echo InitiliazedPlugin')
window.Pusher = Pusher;

window.Echo = new Echo({
broadcaster: 'reverb',
key: import.meta.env.VITE_REVERB_APP_KEY,
wsHost: import.meta.env.VITE_REVERB_HOST,
wsPort: import.meta.env.VITE_REVERB_PORT,
wssPort: import.meta.env.VITE_REVERB_PORT,
forceTLS: (import.meta.env.VITE_REVERB_SCHEME ?? 'https') === 'https',
enabledTransports: ['ws', 'wss'],
});

window.Echo.channel('testChannel')
.listen('MessageSent', (e: any) => {
console.log(e);
});
})
Затем я добавил переменные .env в оба своих приложения (AppA и AppB) в Nuxt:

Код: Выделить всё

REVERB_APP_ID=1001
REVERB_APP_KEY=laravel-herd
REVERB_APP_SECRET=secret
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"
Что странно: я открываю первое приложение и вижу на вкладке сети, что WS-соединение установлено. Я запускаю событие в серверной части, и его можно просмотреть в консоли.
Я открываю второе приложение в браузере и вижу Echo InitiliazedPlugin в консоли как хорошо. Однако я получаю эту информацию

Код: Выделить всё

WebSocket connection to 'ws://localhost:8080/app/laravel-herd?protocol=7&client=js&version=8.4.0-rc2&flash=false' failed: createWebSocket @ pusher-js.js?v=574480e1:3261

WebSocket connection to 'wss://localhost:8080/app/laravel-herd?protocol=7&client=js&version=8.4.0-rc2&flash=false' failed: createWebSocket @ pusher-js.js?v=574480e1:3261
Но почему? Сначала я подумал, что, возможно, это как-то связано с тем фактом, что приложение B доступно только тогда, когда вы вошли в систему, но это должно быть независимо от соединения WS, поскольку оно будет установлено на сервер Reverb, а не на серверную часть Laravel. верно?
У кого-нибудь есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/787 ... pps-layers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»