【发布时间】:2016-11-18 13:07:30
【问题描述】:
使用 RxJS 对 WebSocket 流进行建模的方法有哪些。
我看到的明显的东西是套接字流,它发出消息流。
如果我创建一个套接字流,我如何创建它们的消息流并仍然保留发送这些消息的人?
套接字流是我的第一步:
const socket$ = Observable.create(({complete, next}) => {
const server = new WebSocketServer({server: someHttpServer})
server.on('connection', next)
return () => {
server.close()
complete()
}
})
但是消息流有点困难,因为我需要从中获取消息的套接字。
这是我第一次尝试建模:
const message$ = socket$.flatMap(socket => Observable.create(({complete, next}) => {
socket.on('message', next)
socket.on('close', complete)
return () => socket.close()
})).share()
从所有套接字流式传输所有套接字消息的 observable。但是如果我订阅它,我就没有套接字了,这使得它是单向的。
我想要
socket$ -> message$ -> server-processing -> socket$
但响应、广播、多播和单播有多种用例。
【问题讨论】:
标签: javascript websocket rxjs