Özet - Gerçek zamanlı
- Node.js kursu
- İleri seviye
- Ders 48/83
- 5 dk
Socket.io, emit/on ve rooms'u birleştirerek bir oda sistemi yazarsın.
Özet - Gerçek zamanlı
Bu grupta Socket.io'nun temel araçlarını öğrendin: socketIo(server) ile io oluşturmak, io.on("connection") ile bağlantı dinlemek, socket.emit ve socket.on ile mesaj alışverişi yapmak, socket.join ile odalara gruplandırmak ve io.of ile namespace'ler oluşturmak.
Şimdi bunları birleştirip küçük bir sohbet sunucusu iskeleti kuracaksın. İskelet yeni bağlantıları karşılayacak, chat mesajlarını dinleyecek ve tüm istemcilere yayacaktır. Bu mini görev, gerçek zamanlı araçların gerçek bir sunucuda nasıl birleştiğini gösterir.
Sohbet sunucusu tasarımı
Bir sohbet şunucusunun iskeleti şöyledir: io.on("connection") yeni istemciyi karşılar, socket.on("chat") istemciden mesaj alır, io.emit("chat") mesajı tüm istemcilere yayar.
Akış: io.on("connection", (socket) => { socket.on("chat", (mesaj) => { io.emit("chat", mesaj); }); });. İstemci chat olayını gönderir; sunucu bunu dinler ve tüm istemcilere yayar. Olay adı her iki tarafta aynı olmalıdır. Bu iskeletin üzerine kimlik doğrulama, oda desteği ve mesaj kalıcılığı eklenebilir. Socket.io bu akışı çok az kodla mümkün kılar.
Uygulama Sohbet iskeletini kur
Aşağıdaki io nesnesini kullan. io.on("connection", (socket) => { socket.on("chat", (mesaj) => { io.emit("chat", mesaj); }); }) ile sohbet iskeletini tanımla. console.log ile "Sohbet hazır" yaz.
Başlangıç kodu
const socketIo = require("socket.io");
const io = socketIo();
// connection + chat dinleyici + io.emit yayınını birleştir
// buraya yaz
// "Sohbet hazır" yazdır
// buraya yazÖrnek çözüm
const socketIo = require("socket.io");
const io = socketIo();
io.on("connection", (socket) => {
socket.on("chat", (mesaj) => { io.emit("chat", mesaj); });
});
console.log("Sohbet hazır");Beklenen çıktı
Sohbet hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Sohbet iskeleti hangi parçaları birleştirir?
io.on("connection", (socket) => socket.on("chat", ...))- Yalnızca require
- Yalnızca console.log
- Yalnızca socket.join
- io.on, socket.on ve io.emit Doğru cevap
Açıklama: io.on + socket.on + io.emit birleşir.
2 Aracı rolüne eşle
| Kavram | Anlamı |
|---|---|
io.on("connection") |
Yeni istemciyi dinler |
socket.on("chat") |
İstemciden mesaj alır |
io.emit |
Tüm istemcilere yayar |
socket.join |
Odaya ekler |