CodeBlanks Logo Icon CodeBlanks

Namespaces

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

index.js
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

index.js
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

Soru
const adminIo = io.of("____");
Cevap
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?

index.js
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.

İleri seviye bölümündeki tüm dersler