현재 각도 4 (rxjs-websockets) 사용자 (https://github.com/ohjames/rxjs-websockets)를 사용하려고합니다. 여기 각도 4의 rxjs-websockets에서 재 연결 처리
내 서비스 :import { Injectable } from '@angular/core';
import { QueueingSubject } from 'queueing-subject'
import { Observable } from 'rxjs/Observable'
import websocketConnect from 'rxjs-websockets'
import { environment } from 'environments/environment';
@Injectable()
export class WebsocketJWTService {
private inputStream: QueueingSubject <any>
public messages: Observable <any>
SERVER: string = environment["SERVER_ADDRESS"];
constructor(private modal: Modal, private SS: SharedService, private userManager: UserManagerService) {}
public connect() {
let SERVER = this.SERVER.substring(8);
if (this.messages)
return;
let temp = websocketConnect(
"wss://" + SERVER + "/ws/media?token=" + this.userManager.getToken(),
this.inputStream = new QueueingSubject <any>()
)
this.messages = temp.messages.share()
}
public send(message: any): void {
message['WSTOKEN'] = this.userManager.getToken();
this.inputStream.next(message)
}
}
및 내 구성 요소에 이런 식으로 전화 해요 : 내가 연결 상태를 볼 수 있도록 재 연결을 처리하기 위해 노력하고있어 지금
constructor(private socket:WebsocketJWTService) {}
ngOnInit() {
this.socket.connect();
this.socketSubscription = this.socket.messages.subscribe(message => this.socketMessage(message));
}
을 연결된 소켓 수가 0이되면 연결 기능을 다시 호출하십시오.
temp.connectionStatus.subscribe(numberConnected => {
if (this.connectedNumber > numberConnected) {
console.log("disconnected");
setTimeout(() => {
delete this.messages;
this.connect();
this.messages.subscribe();
}, 5000)
}
this.connectedNumber = numberConnected;
})
정상적으로 작동합니다. 내 소켓이 떨어졌을 때 다시 연결되는 것을보고 있지만 재 연결 후 내 가입이 작동을 멈춘다. 새 소켓 연결에서 보낸 소켓 이벤트가 표시되지만 각도 코드가 알림되지 않는 것 같습니다.
누군가가 websocket에 다시 연결하고 구독을 유지하는 방법을 알고 있습니까?
는 시간