|
|
@ -40,6 +40,7 @@ import {
|
|
|
|
GetPrivateMessagesForm,
|
|
|
|
GetPrivateMessagesForm,
|
|
|
|
UserJoinForm,
|
|
|
|
UserJoinForm,
|
|
|
|
MessageType,
|
|
|
|
MessageType,
|
|
|
|
|
|
|
|
WebSocketJsonResponse,
|
|
|
|
} from '../interfaces';
|
|
|
|
} from '../interfaces';
|
|
|
|
import { UserService } from './';
|
|
|
|
import { UserService } from './';
|
|
|
|
import { i18n } from '../i18next';
|
|
|
|
import { i18n } from '../i18next';
|
|
|
@ -59,16 +60,20 @@ export class WebSocketService {
|
|
|
|
|
|
|
|
|
|
|
|
private constructor() {
|
|
|
|
private constructor() {
|
|
|
|
this.ws = new ReconnectingWebSocket(wsUri);
|
|
|
|
this.ws = new ReconnectingWebSocket(wsUri);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.subject = Observable.create((obs: any) => {
|
|
|
|
|
|
|
|
this.ws.onmessage = e => {
|
|
|
|
|
|
|
|
obs.next(JSON.parse(e.data));
|
|
|
|
|
|
|
|
};
|
|
|
|
this.ws.onopen = () => {
|
|
|
|
this.ws.onopen = () => {
|
|
|
|
console.log(`Connected to ${wsUri}`);
|
|
|
|
console.log(`Connected to ${wsUri}`);
|
|
|
|
if (UserService.Instance.user) {
|
|
|
|
if (UserService.Instance.user) {
|
|
|
|
this.userJoin();
|
|
|
|
this.userJoin();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
let res: WebSocketJsonResponse = {
|
|
|
|
|
|
|
|
reconnect: true,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
obs.next(res);
|
|
|
|
this.subject = Observable.create((obs: any) => {
|
|
|
|
|
|
|
|
this.ws.onmessage = e => {
|
|
|
|
|
|
|
|
obs.next(JSON.parse(e.data));
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}).pipe(share());
|
|
|
|
}).pipe(share());
|
|
|
|
}
|
|
|
|
}
|
|
|
|