Setelah saya memutakhirkan ke v3, ketika saya memanggil socket.disconnect()
di salah satu sisi klien atau server, tampaknya koneksi yang mendasari Manajer juga ditutup - semua soket lain yang menggunakan manajer yang sama / koneksi yang mendasarinya juga terputus.
Saya tidak tahu ke mana harus mengajukan masalah ini. Mungkin sudah root di engine.io v4?
Inilah perbedaan proyek saya selama pemutakhiran . Saya minta maaf bahwa itu berisi beberapa perubahan yang tidak terkait juga. Hal utama yang ingin saya soroti adalah bahwa saya tidak membuat perubahan apa pun pada cara saya mengatur dan mengelola koneksi (Anda dapat cmd+F untuk "memutuskan", "menutup", "io.socket").
Silakan lihat jsfiddle ini .
Perilaku v2 adalah bahwa memanggil socket.close()
di sisi klien dan di sisi server hanya boleh menutup soket itu ketika seorang manajer memiliki beberapa ruang nama - itu tidak boleh menutup setiap soket multipleks di bawah palungan soket itu.
Amati perbedaan perilaku saat menggunakan socket.io v2 sebagai gantinya.
Saya menghabiskan banyak waktu men-debug kode saya sendiri berpikir saya memecahkan sesuatu :')
Nantikan perbaikannya! Dan sekali lagi terima kasih atas kerja keras Anda dalam memulai v3.
Acara "menghubungkan" tidak pernah diaktifkan pada koneksi soket dan tidak mengisi array connecting
di manajer:
https://github.com/socketio/socket.io-client/blame/master/lib/manager.ts#L599
Ketika _destroy dipanggil if (this.connecting.length) return; this._close();
akan selalu menutup koneksi.
Saya tidak melihat masalah dalam kode klien. Dalam kode server saya tidak dapat menemukan acara apa pun bernama "menghubungkan".
Inilah komit yang menghilangkan pancaran "menghubungkan".
https://github.com/socketio/socket.io-client/commit/b60e909039d4bbb979d32ec86ac16c5398526b44#diff -f0e64910289a49966c99ceadaa5637404e3439ec0812a4bdb7003fe1e5a33d1c
@darrachequesne Bisakah Anda memeriksa masalah ini.
@david-fong saya memang bisa mereproduksi masalah, terima kasih banyak untuk langkah-langkah rinci :+1:
Ini harus diperbaiki dengan https://github.com/socketio/socket.io-client/commit/f8f60fc860f51aa6465fc32dd9275a8e1d22f05d (termasuk dalam [email protected]
).
Sekali lagi, terima kasih atas laporan terperincinya, itu sangat membantu!