我试图实现一个非常简单的基于WebSockets的Angular应用程序,我从一个例子中得到的,连接是这样建立的。
public connect(url): Subject<MessageEvent> {
if (!this.subject) {
this.subject = this.create(url);
console.log('Successfully connected: ' + url);
}
return this.subject;
}
这就是我如何试图适应我们的websocket的输出--但.map不存在,我一直在寻找如何处理Subject,但我就是无法处理它。
public messages: Observable<Message>;
constructor(private wsService: WebsocketService) {
this.messages = wsService.connect(CHAT_URL).map(
(response: MessageEvent): Message => {
const data = JSON.parse(response.data);
return {
author: data.author,
message: data.message
};
}
);
}
编辑我得到以下错误信息。
error TS2339: Property 'map' does not exist on type 'Subject<MessageEvent>'.
我希望你的方法是在ngOnit或构造函数中监听。试试这个。
import { map } from 'rxjs/operators';
ngOnit() {
this.messages = this.wsService.connect(CHAT_URL).pipe(map(
(response: MessageEvent): Message => {
const data = JSON.parse(response.data);
return {
author: data.author,
message: data.message
};
}));
}
请注意,如果你的方法是在ngOnit或构造函数里面监听的,你可以试试这个。 试试 rxjs/webSocket
太