Namespaces memungkinkan Anda untuk membuat objek dengan nama yang sama, tetapi mereka akan terpisah karena mereka akan hidup di ruang nama yang berbeda, atau dikenal sebagai lingkup.
Ini adalah proses pemikiran yang sama yang harus Anda miliki dengan Socket.IO namespaces. Jika Anda sedang membangun aplikasi web Node modular, Anda akan ingin namespace keluar modul yang berbeda. Jika Anda melihat kembali kode namespace kami, Anda akan melihat bahwa kami dapat mendengarkan acara yang sama persis di ruang nama yang berbeda. Di Socket.IO, acara koneksi di koneksi default dan acara koneksi di a / xxx namespace berbeda. Misalnya, jika Anda memiliki sistem obrolan dan komentar di situs Anda dan ingin keduanya menjadi waktu nyata, Anda dapat menggunakan namespace masing-masing. Ini memungkinkan Anda untuk membangun seluruh aplikasi Socket.IO yang hanya hidup dalam konteksnya sendiri.
Ini juga berlaku jika Anda sedang membangun sesuatu untuk dikemas dan diinstal. Anda tidak dapat mengetahui apakah seseorang sudah menggunakan acara tertentu di namespace default, jadi Anda harus membuatnya sendiri dan mendengarkan di sana. Ini memungkinkan Anda untuk tidak menginjak-injak pengembang mana pun yang menggunakan paket Anda.
Namespaces memungkinkan kita untuk mengukir koneksi ke dalam konteks yang berbeda. Kita dapat membandingkan ini dengan kamar, yang memungkinkan kita untuk mengelompokkan koneksi bersama. Kita kemudian dapat memiliki koneksi yang sama bergabung dengan kamar lain, juga.
Namespaces memungkinkan Anda untuk membuat konteks berbeda agar Socket.IO berfungsi. Kamar memungkinkan Anda untuk mengelompokkan koneksi klien di dalam konteks tersebut.