Rooms
- Node.js kursu
- İleri seviye
- Ders 46/83
- 5 dk
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
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
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?
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
socket.join("____");
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 |