У меня есть этот код в качестве службы в моем приложении angular:
import * as io from 'socket.io-client';
import { Observable } from 'rxjs'
export class AppChatService {
private url = 'http://localhost:3000';
private socket;
constructor() {
this.socket = io.connect( this.url);
this.socket.on('connect', function(){
console.log('connection established');
});
this.socket.on('disconnect', function(){
console.log('reached on disconnect function');
this.socket.socket.connect();
});
}
public disconnectManually(){
this.socket.disconnect();
console.log('disconnected manually');
}
public sendMessage(message) {
this.socket.emit('new-message', message);
}
public connectToChatroom(roomObject){
this.socket.emit('create',roomObject);
}
public getMessages = () => {
return Observable.create((observer) => {
this.socket.on('new-message', (message) => {
console.log('reached get messages observable app chat service');
observer.next(message);
});
});
}
}
, когда я пытаюсь отключиться вручную, успешно вызывается функция «при отключении», и я вижу, что «достигнуто при отключении» функция 'в консоли, как и ожидалось. Но это утверждение: this.socket.socket.connect();
вызывает эту ошибку в браузере:
ERROR TypeError: Cannot read property 'socket' of undefined
, и я не могу понять, почему. Любая помощь будет высоко ценится.