Я пытаюсь опубликовать данные во внешнем угловом приложении, используя socket.io в feathersjs.Я создал канал следующим образом и создал поток mockData.
function mockData(app) {
app.emit('testEvent', { test: 'Something happened'});
};
setInterval(mockData.bind(null, app), 1000);
app.publish('testEvent', (data) => {
console.log('test');
return app.channel('testStream1');}
)
И когда клиент подключен, я добавил клиента в канал testStream1 следующим образом.
app.on('connection', connection => {
// On a new real-time connection, add it to the anonymous channel
app.channel('testStream1');
app.channel('anonymous').join(connection);
app.channel('testStream1').join(connection);
});
Здесь ничего нетapp.publish
обратный вызов выполняется, но если я пытаюсь выполнить прямой вывод из объекта socketio, я могу получить значения в клиенте.
function mockData(app) {
app.emit('testEvent', { test: 'Something happened'});
app.io.emit('testStream1', { text: 'A client connected!' }); // Adding this line, I am able to get values from socketio client
};
Похоже, что app.publish([event,] fn)
не регистрирует функцию публикации для пользовательского события testEvent
.Как получить данные, используя app.publish
?