Mình đã đọc cái này https://socket.io/docs/server-api/
Tài liệu ghi rõ: đặt pingTimeout để khi client không pong ngược lại, coi như client mất kết nối.
var io = require('socket.io')(server, {
reconnection: false,
pingTimeout: 5000,
pingInterval: 10000,
});
Mình để 5 giây (5000), rồi vào chrome debugger, bấm pause, 5 giây sau không thấy tác dụng (event disconnect không hề được gọi).
Google thì được thêm cách (có vẻ dành cho phiên bản cũ):
var io = require('socket.io')(server, {
reconnection: false,
pingTimeout: 5000,
pingInterval: 10000,
});
// thêm đống dưới này
io.set('heartbeat timeout', 5000);
io.set('heartbeat interval', 10000);
Cũng thế, không có tác dụng.
Ok vậy nếu mình làm đến đây là đúng rồi, vậy event timeout nằm ở đâu trên server?? (Bên client https://socket.io/docs/client-api/ có hẳn một event timeout).
Còn nếu mình làm sai thì sai chỗ nào.
Mong mọi người giúp với, mình quá mệt rồi.
(Tại sao tài liệu bên open source lúc nào cũng làm người ta điên đầu?)