Angular 7 Websocket 句柄主题<MessageEvent>

Angular 7 Websocket handle Subject<MessageEvent>

我正在尝试实现一个非常简单的基于 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
    };
  }));
}

注:也试试rxjs/webSocket