CodeBlanks Logo Icon CodeBlanks

Rooms

Socket.io rooms ile oda yönetimini öğrenirsin.

Rooms (odalar)

Bir room, istemcileri gruplandıran bir kanaldır. socket.join("odaAdı") ile bir istemciyi odaya alırsın. Sonra io.to("odaAdı").emit(...) ile yalnızca o odadaki istemcilere mesaj gönderirsin.

Örnek: socket.join("oda-42"); io.to("oda-42").emit("mesaj", "Merhaba oda");. Bu, oda-42 odasına katılan istemcilere Merhaba oda mesajını gönderir. Odalar grup sohbeti, kanal bazlı bildirimler ve çok oyunculu oyunlar için idealdir. socket.leave("odaAdı") ile istemciyi odadan çıkarırsın. Oda adları dizedir; istediğin adı verebilirsin.

io.to('oda').emit

Bir odaya mesaj göndermek için io.to("oda").emit(olay, veri) kullanırsın. Bu, yalnızca o odadaki istemcilere mesaj iletir. io.emit tüm istemcilere gider; io.to ise yalnızca bir odaya.

Örnek: io.to("oda-42").emit("mesaj", { metin: "Merhaba" });. oda-42'deki tüm istemciler mesaj olayını alır. Birden çok odaya göndermek için io.to("oda-1").to("oda-2").emit(...) yazarsın. Odalar sunucu tarafında tutulur; istemci tarafında görünmez. socket.broadcast.to("oda").emit(...) ile o odadaki diğer istemcilere (kendin hariç) gönderirsin.

Uygulama Oda katılımı ve yayın

Aşağıdaki io nesnesini kullan. io.on("connection", (socket) => { socket.join("oda-42"); io.to("oda-42").emit("mesaj", "Merhaba"); }) tanımla. console.log ile "rooms hazır" yaz.

Başlangıç kodu

index.js
const socketIo = require("socket.io");
const io = socketIo();

// io.on içinde socket.join ve io.to çağrısı yaz
// buraya yaz

// "rooms hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
const socketIo = require("socket.io");
const io = socketIo();
io.on("connection", (socket) => {
  socket.join("oda-42");
  io.to("oda-42").emit("mesaj", "Merhaba");
});
console.log("rooms hazır");

Beklenen çıktı

rooms hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 socket.join('oda-1') ne yapar?

index.js
socket.join("oda-1")
  • İstemciyi siler
  • İstemciyi odaya ekler Doğru cevap
  • Tüm istemcilere mesaj gönderir
  • Sunucuyu kapatır

Açıklama: socket.join istemciyi odaya ekler.

2 socket.join satırını tamamla

Soru
socket.join("____");
Cevap
socket.join("oda-42");

Açıklama: socket.join('oda-42') ile istemci odaya katılır.

3 Parçayı rolüne eşle

Kavram Anlamı
socket.join İstemciyi odaya alır
socket.leave İstemciyi odadan çıkarır
io.to O odaya mesaj gönderir
oda adı Kanal kimliği

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