Я пытаюсь отправить некоторые события от Node Client на эхо-сервер Laravel.
В Интернете не так много документации. Я пытался сделать это с помощью socket.emit()
, но на эхо-сервер не приходит никаких событий.
Вот мой код app.ts
import express = require('express');
import Echo from "laravel-echo";
import SocketIoClient from "laravel-echo";
// Create a new express application instance
const app: express.Application = express();
let io = require('socket.io-client');
let echo = new Echo({
broadcaster: 'socket.io',
host: 'http://3.16.169.253:6001',
client: io
});
echo.channel('public').listen('drumdata', (e:any) => {
console.log("DATA RECEIVED");
console.log(e);
})
sendData();
async function sendData(){
for(let i=0;i<10;i++){
await sleep(2000)
echo.connector.options.auth.headers['X-Socket-ID'] = echo.connector.socket.id
echo.connector.socket.emit('drumdata', "public",{"eventData":"myData"}) ;
}
}
function sleep(ms:number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Журнал Echo-Server показывает, что приложение присоединяется к каналу, но никаких событий не запускается.
[3:25:25 PM] - S6s3SKH1L61C9U6NAAAr joined channel: public
[3:25:59 PM] - S6s3SKH1L61C9U6NAAAr left channel: public (transport close)
[3:26:08 PM] - qZljcx9BzDZOU-s8AAAs joined channel: public
[3:26:14 PM] - qZljcx9BzDZOU-s8AAAs left channel: public (transport close)
[3:27:02 PM] - 9--wTFOpWlZVIfw4AAAt joined channel: public
Есть ли у кого-нибудь предложения по этому поводу?
РЕДАКТИРОВАТЬ:
Запуск laravel-echo-server в режиме DEBUG показывает, что сообщение получено, но на канал не отправлено событие. Я даже добавил заголовок аутентификации «X-Socket-ID».
2019-07-09T10:09:10.381Z socket.io:socket got packet {"type":2,"nsp":"/","data":["drumdata","public",{"eventData":"pincia"}]}
2019-07-09T10:09:10.381Z socket.io:socket emitting event ["drumdata","public",{"eventData":"pincia"}]
2019-07-09T10:09:10.381Z socket.io:socket dispatching an event ["drumdata","public",{"eventData":"pincia"}]
2019-07-09T10:09:12.350Z engine:ws received "42["drumdata","public",{"eventData":"pincia"}]"
2019-07-09T10:09:12.350Z engine:socket packet
2019-07-09T10:09:12.350Z socket.io-parser decoded 2["drumdata","public",{"eventData":"pincia"}] as {"type":2,"nsp":"/","data":["drumdata","public",{"eventData":"pincia"}]}
2019-07-09T10:09:12.350Z socket.io:socket got packet {"type":2,"nsp":"/","data":["drumdata","public",{"eventData":"pincia"}]}
2019-07-09T10:09:12.350Z socket.io:socket emitting event ["drumdata","public",{"eventData":"pincia"}]
2019-07-09T10:09:12.350Z socket.io:socket dispatching an event ["drumdata","public",{"eventData":"pincia"}]
2019-07-09T10:09:14.350Z engine:ws received "42["drumdata","public",{"eventData":"pincia"}]"
2019-07-09T10:09:14.350Z engine:socket packet
Спасибо, Федерико