gpt4 book ai didi

angular - WebSocketSubject - 优势?

转载 作者:太空狗 更新时间:2023-10-29 17:56:59 28 4
gpt4 key购买 nike

免责声明:我是网络开发的新手,所以请多多包涵...

堆栈:Angular 前端,后端的 Tornado(基于 python)网络服务器

我一直在使用 RxJs 和 WebSocket 成功地与后端通信,基于这个非常流行的教程:https://medium.com/@lwojciechowski/websockets-with-angular2-and-rxjs-8b6c5be02fac

我刚刚在 RxJs 5 中偶然发现了 WebSocketSubject,我想知道它有哪些优势?

到目前为止,我已经能够使用它来连接、发送和接收,但我无法弄清楚如何使用我通过 Subject 获得的典型 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);
}
)

最佳答案

我认为我的困惑来自于对 RxJs 基础知识的缺乏理解。但是,我确实弄清楚了在这种情况下如何映射,如下所示:

  this.pubsubSubject
.map((resp: IPubSubMessage): any => {
console.log(resp.payload);

}).subscribe();

对于那些特别需要有关 WebSocketSubject 的更多信息的人,您可以在此处查看代码中的注释:

https://github.com/mpodlasin/rxjs/blob/47ae8573256609492e16a957348883f0c8039c2e/src/observable/dom/WebSocketSubject.ts

我在其他地方找不到这个细节,所以这可能是现在寻找的最佳位置。

很高兴其他人能提供更多信息。

关于angular - WebSocketSubject - 优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com