Я пытаюсь создать чат в реальном времени, используя socket.io. Однако у меня возникают проблемы с отключением приложения чата.
Внешний интерфейс
constructor(props){
super(props);
this.state={
endpoint: 'localhost:3001'
}
this.socket = socketIOClient(this.state.endpoint);
}
componentDidMount() {
this.socket.emit('join', {name: "name",room: "rooms" }, () => {
});
}
componentWillUnmount(){
this.socket.emit('disconnect');
this.socket.off();
}
Сторона сервера
var app = express();
let server = app.listen(PORT, ()=> console.log('Listening on port ' + PORT));
let io = require('socket.io')(server);
io.on('connection', (socket) => {
console.log('We have a new conneciton');
socket.on('join', ({name, room}, callback) => {
console.log(name, room);
})
socket.on('disconnect', () => {
console.log('user had left');
})
})
Оставленный пользователь не появляется в консоли, когда компонент отключен.
Где я go ошибся?
Также я заметил, что сокет 'присоединиться' и 'отключиться всегда будет работать, даже если я не звоню со стороны клиента. почему это?