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