Après la mise à niveau vers la v3, lorsque j'appelle socket.disconnect()
côté client ou côté serveur, il semble que la connexion sous-jacente du gestionnaire soit également fermée - toutes les autres sockets utilisant le même gestionnaire / connexion sous-jacente sont également déconnectées.
Je ne sais pas où déposer ce problème. Peut-être qu'il a une racine dans engine.io v4 ?
Voici un diff de mon projet lors de la mise à niveau . Je m'excuse qu'il contienne également des modifications sans rapport. La principale chose que je veux souligner est que je n'ai apporté aucune modification à la façon dont je configure et gère les connexions (vous pouvez cmd + F pour "déconnecter", "fermer", "io.socket").
S'il vous plaît voir ce jsfiddle .
Le comportement de la v2 est que l'appel de socket.close()
côté client et côté serveur ne devrait fermer cette socket que lorsqu'un gestionnaire a plusieurs espaces de noms - il ne devrait pas fermer toutes les sockets multiplexées sous le gestionnaire de cette socket.
Observez la différence de comportement lorsque vous utilisez plutôt socket.io v2.
J'ai passé beaucoup de temps à déboguer mon propre code en pensant que j'avais cassé quelque chose :')
J'attends le correctif avec impatience ! Et merci encore pour votre travail acharné dans le démarrage de la v3.
L'événement "connecting" n'est jamais déclenché lors de la connexion par socket et ne remplit pas le tableau connecting
dans le gestionnaire :
https://github.com/socketio/socket.io-client/blame/master/lib/manager.ts#L599
Lorsque _destroy est appelé, if (this.connecting.length) return; this._close();
fermera toujours la connexion.
Je ne vois pas de problème dans le code client. Dans le code du serveur, je n'ai trouvé aucun événement nommé "connexion".
Voici le commit qui supprime l'émission de "connecting".
https://github.com/socketio/socket.io-client/commit/b60e909039d4bbb979d32ec86ac16c5398526b44#diff -f0e64910289a49966c99ceadaa5637404e3439ec0812a4bdb7003fe1e5a33d1c
@darrachequesne Pourriez-vous s'il vous plaît vérifier ce problème.
@david-fong Je pourrais en effet reproduire le problème, merci beaucoup pour les étapes détaillées :+1:
Cela devrait être corrigé par https://github.com/socketio/socket.io-client/commit/f8f60fc860f51aa6465fc32dd9275a8e1d22f05d (inclus dans [email protected]
).
Encore une fois, merci pour le rapport détaillé, cela aide vraiment!