Ich bin mit socket.io auf node.js (Client und Server) herumspielen, und Probleme mit dem Ereignis "Trennen". Werfen Sie einen Blick auf die folgenden Mokka Testcode:Socket.io Server nicht "Trennen" -Ereignis empfangen, wenn Client-Aufrufe trennen
it('This test never finishes', function(done) {
// Output:
// connected socket iYTGdwMJ0yVM5orGAAAB
io.on('connection', (socket) => {
console.log('connected socket', socket.id);
socket.on('disconnect',() => {
console.log('io disconnect');
done();
});
});
const mj = ioClient(`https://localhost:${socketPort}`);
mj.on('disconnect',() => {
console.log('mj disconnect');
});
mj.disconnect();
});
it('This test works', function(done) {
// Output:
// connected socket DNUREuytEp1CPJdFAAAC
// io disconnect
io.on('connection', (socket) => {
console.log('connected socket', socket.id);
console.log(io.socket.connected);
socket.on('disconnect',() => {
console.log('io disconnect');
done();
});
socket.disconnect();
});
const mj = ioClient(`https://localhost:${socketPort}`);
mj.on('disconnect',() => {
console.log('mj disconnect');
});
// Looks like this has no effect
mj.disconnect();
});
});
Wenn disconnect
auf dem Client aufgerufen wird, warum der Server nicht lösen die socket.on('disconnect', ...)
Zuhörer?
Haben Sie versucht, andere Verbindung mit Client und Server zu machen? Kommunizieren sie überhaupt? Versuchen Sie, einen Test auszugeben 'socket.emit ('test', true)' dann sehen Sie, ob Sie es erhalten – forJ
@serendipity ja, das funktioniert. – PunDefeated