Как подключить Laravel Echo к вещателю Pusher в приложении React Native?
О местной среде
Предполагая, что вы уже настроили Laravel с конфигурацией вашего веб-сокета, как описано в разделе Вещание с помощью Laravel и метод замены Pusher из BeyondCode Laravel Websockets.
Шаг 1. Установите пакеты laravel-echo и pusher-io на React-Native.
$ npm install --save laravel-echo pusher-js
Шаг 2. Добавьте эти переменные в файл конфигурации (поместите его в защищенный файл)
WS_URI: '{your-domain.test}', WS_PORT: 6001, WS_AUTH_ENDPOINT: '{https://your-domain.test/broadcasting/auth}', WS_MIX_PUSHER_KEY: '{your-pusher-key}', WS_MIX_PUSHER_APP_CLUSTER: '{your-cluster}', WS_TLS: true,
Шаг 3. Создайте новый сервис с именем «websocket» или с другим именем в папке «services».
import Echo from 'laravel-echo' import { Config } from '@/Config' import { auth } from '@/Services/auth' const token = auth.getBearerToken() window.Pusher = require('pusher-js') window.Pusher.logToConsole = true // just for development export const echo = new Echo({ wsHost: Config.WS_URI, wsPort: Config.WS_PORT, broadcaster: 'pusher', encrypted: false, key: Config.WS_MIX_PUSHER_KEY, cluster: Config.WS_MIX_PUSHER_APP_CLUSTER, authEndpoint: Config.WS_AUTH_ENDPOINT, enableStats: false, forceTLS: false, enabledTransports: ['ws'], auth: { headers: { Authorization: 'Bearer ' + token }, }, })
Последний шаг:импортируйте echo в свой компонент и используйте его таким образом.
import { echo } from '@/Services/websocket' // In your component function echo.channel('user.' + userId) .listen('Websocket.UserEvent', event => { console.log(event, 'Websocket.UserEvent') })
В производственной среде
Вскоре…
Спасибо за чтение, Glade, если она вам поможет! :)