Namespaces
- Node.js kursu
- İleri seviye
- Ders 47/83
- 5 dk
Socket.io namespaces ile ad alanı öğrenirsin.
Namespaces (ad alanları)
Bir namespace, tek bir Socket.io sunucusunda ayrı iletişim kanalları oluşturur. io.of("/yol") ile yeni bir namespace oluşturursun. Her namespace kendi bağlantılarını ve olaylarını yönetir; böylece tek porttan birden çok bağımsız kanal çalıştırırsın.
Örnek: const adminIo = io.of("/admin"); adminIo.on("connection", (socket) => { console.log("Admin bağlandı"); });. /admin namespace'i ayrı bir kanaldır; istemci /admin yoluna bağlanır. Varsayılan namespace /'dir. Namespace'ler çok kiracılı (multi-tenant) uygulamalarda, yetki düzeylerine göre kanal ayırmada ve modüler mimarilerde kullanılır. Oda (room) içindeki istemcileri gruplandırır; namespace ise kanal başlığını ayırır.
Namespace kullanımı
Bir namespace oluşturduktan sonra, tıpkı io gibi kullanırsın. adminIo.on("connection", ...) ile bağlantı dinler, adminIo.emit(...) ile yayın yaparsın. Her namespace'in kendi odaları ve olayları olur.
Örnek: const adminIo = io.of("/admin"); adminIo.on("connection", (socket) => { adminIo.emit("mesaj", "Yönetici geldi"); });. /admin namespace'ine bağlanan her istemci mesaj olayını alır. İstemci tarafında io("/admin") ile bağlanılır. Namespace'ler arasında olaylar karışmaz; /admin ve /uye ayrı kanallardır. Bu, yetki düzeylerine göre akışı ayırmak için idealdir.
Uygulama Admin namespace'i oluştur
Aşağıdaki io nesnesini kullan. const adminIo = io.of("/admin") ile admin namespace'i oluştur. adminIo.on("connection", (socket) => { console.log("Admin"); }) tanımla. console.log ile "namespaces hazır" yaz.
Başlangıç kodu
const socketIo = require("socket.io");
const io = socketIo();
// "/admin" namespace oluştur ve connection dinle
// buraya yaz
// "namespaces hazır" yazdır
// buraya yazÖrnek çözüm
const socketIo = require("socket.io");
const io = socketIo();
const adminIo = io.of("/admin");
adminIo.on("connection", (socket) => { console.log("Admin"); });
console.log("namespaces hazır");Beklenen çıktı
namespaces hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 io.of çağrısını tamamla
const adminIo = io.of("____");
const adminIo = io.of("/admin");
Açıklama: io.of('/admin') ile admin namespace'i oluşturulur.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
io.of |
Namespace oluşturur |
/admin |
Namespace yolu |
adminIo.on |
O kanalda dinler |
/ |
Varsayılan namespace |
3 io.of('/admin') ne oluşturur?
io.of("/admin")- Yeni bir kapı
- Yeni bir oda
- Yeni bir namespace Doğru cevap
- Yeni bir istemci
Açıklama: io.of yeni bir namespace oluşturur.