CodeBlanks Logo Icon CodeBlanks

Özet - Gerçek zamanlı

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

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

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

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

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