免责声明:我是网络开发的新手,所以请耐心等待......
Stack:Angular前端,Tornado(基于python)的后端Web服务器
基于这个非常受欢迎的教程,我已经成功地使用RxJs和WebSocket与后端进行通信:https://medium.com/@lwojciechowski/websockets-with-angular2-and-rxjs-8b6c5be02fac
我刚刚在RxJs 5中偶然发现了WebSocketSubject,我想知道它的优点是什么?
到目前为止,我已经能够使用它来连接,发送和接收,但是我无法弄清楚如何使用我在主题中获得的典型RxJs运算符...所以在某种程度上它只是似乎更难使用。
我错过了什么?
这是我正在使用的代码:
//create the socket
this.pubsubSubject = WebSocketSubject.create("ws://" + this.hostName + ":" + connection_info.port + "/" + connection_info.ps);
//output a message when it's open
this.pubsubSubject.openObserver = {
next: value => {
console.log("ps socket is " + (this.pubsubSubject.socket.readyState == WebSocket.OPEN ? "OPEN" : "NOT OPEN"));
}
}
//send the authentication token through the socket
this.pubsubSubject.next(JSON.stringify(authenticate_request));
//subscribe to specific events from server
var subscription = {
"subscribe": events
}
this.pubsubSubject.next(JSON.stringify(subscription));
//start getting messages
this.pubsubSubject.subscribe(
(msg: any) => {
console.log("msg: " + msg);
}
)
答案 0 :(得分:2)
我认为我的困惑来自于对RxJs基础知识缺乏了解。但是,在这种情况下,我确实想出如何映射,如下所示:
this.pubsubSubject
.map((resp: IPubSubMessage): any => {
console.log(resp.payload);
}).subscribe();
对于那些特别需要有关WebSocketSubject的更多信息的人,您可以在这里查看代码中的注释:
我无法在其他地方找到这个细节,所以这可能是现在寻找的最好的地方。
很高兴让其他人知道更多信息。