Я пытаюсь использовать websockets
с Angular.
Вот мой код
ngOnInit(){
const self = this;
self.authService.init();
self.socket = self.authService.getSocket();
if(self.socket){
self.socket.on("new-message", (data) => {
console.log(data);
});
}
}
Это прекрасно работает и всякий раз, когда данные передаются с new-message
, я получаю это здесь.
Но теперь я изменил логику и инициализирую сокет, только если пользователь authenticated
.Вот мой новый код:
ngOnInit(){
const self = this;
this.authService.isUserAuthenticatedbyType().then(function(isAuthenticated){
if(isAuthenticated){
self.authService.init();
self.socket = self.authService.getSocket();
if(self.socket){
self.socket.on("new-message", (data) => {
console.log(data);
});
}
});
}
Здесь isUserAuthenticatedbyType
имеет вызов API, который возвращает логическое обещание, основанное на том, является ли пользователь authenticated
.
Теперь, в случаепользователя authenticated
, мой сокет инициализирован правильно, все еще никакое сообщение не получено даже после отправки сообщения.Я не уверен, что пошло не так между этими двумя подходами.Любая помощь будет принята с благодарностью.