встроенные инструмены ангуляра для работы с веб сокетами
Почему тогда сейчас я могу работать с данным апи из любого другого места средствами ангуляра?
При этом на клиенте то команда получения сообщения от сервера всего 1 это socket.onmessage в итоге у меня ответ от сервера пихается в одну переменную и список подключений и сообщения, а как все это разделить?
socket.onmessage = message => {
const obj = JSON.parse(message);
switch (obj.type) {
case MessateTypes.Online: return onOnline(message.payload);
case MessateTypes.Messages: return onMessages(message.payload);
default: throw new Error('unrecognized message');
}
}
const EventEmitter = require('events');
const pubsub = new EventEmitter();
wss.on('connection', ws => {
pubsub.on('test', (payload, _ws) => {
if (_ws !== ws) {
return;
}
ws.send(payload);
});
ws.on('message', message => {
const { event, payload } = message;
pubsub.emit(event, payload, ws);
});
})
const EventEmitter = require('events');
const pubsub = new EventEmitter();
wss.on('connection', ws => {
ws.on('message', message => {
const { event, payload } = message;
pubsub.emit(event, payload, ws);
});
});
pubsub.on('test', (payload, _ws) => {
_ws.send(payload);
});
const EventEmitter = require('events');
const pubsub = new EventEmitter();
wss.on('connection', ws => {
ws.on('message', message => {
const { event, payload } = message;
pubsub.emit(event, { payload, ws });
});
});
pubsub.on('test', ({ payload, ws }) => {
ws.send(payload);
});
const EventEmitter = require('events');
const pubsub = new EventEmitter();
wss.on('connection', ws => {
ws.on('message', message => {
const { event, payload } = message;
pubsub.emit(event, payload, outcome => ws.send(outcome));
});
});
pubsub.on('test', (payload, send) => {
send(payload);
});
Socket.IO — JavaScript-библиотека для веб-приложений и обмена данными в реальном времени. Состоит из двух частей: клиентской, которая запускается в браузере и серверной для node.js. Оба компонента имеют похожее API. Подобно node.js, Socket.IO событийно-ориентированная.
Socket.IO главным образом использует протокол WebSocket, но если нужно, использует другие методы, например Adobe Flash сокеты, JSONP запросы или AJAX запросы[2], предоставляя тот же самый интерфейс. Помимо того, что Socket.IO может быть использована, как оболочка для WebSocket, она содержит много других функций, включая вещание на несколько сокетов, хранение данных, связанных с каждым клиентом, и асинхронный ввод/вывод
Может быть установлена через npm (node package manager)