Я создал наблюдаемый для моего подключения к веб-сокету, используя WebSocketSubject из rxjs. Пока все хорошо, сервер-клиент работает. Теперь дело в том, что я не могу различить происхождение сообщения в моем клиенте. Я отправляю сообщения, вызывая next () по теме. Все подписки на клиенте тоже получают эти сообщения. Как я могу вместо этого отправлять сообщения только на сервер?
Реализация в основном проистекает из этой статьи: https://medium.com/factory-mind/angular-websocket-node-31f421c753ff
Мой код:
socket$: WebSocketSubject<any>;
constructor() {
this.socket$ = WebSocketSubject.create(SOCKET_URL);
this.socket$.subscribe(
(message) => console.log('<-- ' + message),
(err) => console.error('Error on WebSocket:', err),
() => console.warn('Completed!')
);
}
send(message: SocketMessage) {
const tmp: any = {};
tmp.type = message.type;
tmp.payload = message.payload;
// This will be received by the server but also by client subscriptions = bad
this.socket$.next(JSON.stringify(tmp));
}