Я разрабатываю приложение с Vuetify (Vue.js) в качестве внешнего интерфейса, который связывается с API для laravel внутреннего сервера.
Я пытаюсь создать систему уведомлений с laravel-echo-server , работающим с socket.io . И с помощью laravel-echo в клиент тоже.
Код, который я использую в компоненте клиента для проверки работоспособности соединения:
// Needed by laravel-echo
window.io = require('socket.io-client')
let token = this.$store.getters.token
let echo = new Echo({
broadcaster: 'socket.io',
host: 'http://localhost:6001',
auth: {
headers: {
authorization: 'Bearer ' + token,
'X-CSRF-TOKEN': 'too_long_csrf_token_hardcoded'
}
}
})
echo.private('Prova').listen('Prova', () => {
console.log('IT WORKS!')
})
Это код laravel-echo-server.json
{
"authHost": "http://gac-backend.test",
"authEndpoint": "/broadcasting/auth",
"clients": [],
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
"host": null,
"port": "6001",
"protocol": "http",
"socketio": {},
"sslCertPath": "",
"sslKeyPath": "",
"sslCertChainPath": "",
"sslPassphrase": "",
"apiOriginAllow": {
"allowCors": false,
"allowOrigin": "",
"allowMethods": "",
"allowHeaders": ""
}
}
Я попытался изменить apiOriginsAllow , но безуспешно.
Событие отправлено, я вижу его в laravel-echo-server logs:
Channel: Prova
Event: App\Events\Prova
Но после этого, когда я получаю доступ к компоненту клиента, который содержит код подключения, я вижу в журналах laravel-echo-server длинную трассировку ошибок и следующую ошибку:
The client cannot be authenticated, got HTTP status 419
Как видите, я указал токен csrf и токен авторизации в заголовках клиента laravel echo. Но это не работает.
Это код routes/channels.php
:
Broadcast::channel('Prova', function ($user) {
return true;
});
Я хочу только слушать событие, не важно, является ли оно приватным или общедоступным, потому что, когда оно работает, я хочу поместить его в сервисного работника. Тогда, я полагаю, лучше, если это будет публично.
- Как я могу использовать клиент laravel echo из проекта laravel?
- Будет ли проблема, если я устрою приватное мероприятие и попытаюсь прослушать его у служащего?