CodeBlanks Logo Icon CodeBlanks

WebSocket

WebSocket ile gerçek zamanlı katman yazarsın.

WebSocket katmanı

Bu derste iskelete gerçek zamanlı iletişim için bir WebSocket katmanı ekleyeceğiz. Basit bir io nesnesi tanımlayıp Express uygulamasına bağlayacağız. Gerçek projede Socket.io kullanılır.

Örnek: const io = { on: () => {} }; io.on("connection", (socket) => { console.log("İstemci bağlandı"); });. Bu, gerçek zamanlı katmanın iskeletidir. Üretimde io = socketIo(server) olur. İskelette amaç, WebSocket'in app'e nasıl eklendiğini göstermektir. WebSocket, Express rota katmanından ayrıdır; farklı olayları dinler. Express HTTP isteklerini, WebSocket ise gerçek zamanlı olayları işler.

WebSocket kurulumu

WebSocket, Express uygulamasının yanında çalışır. Express HTTP isteklerini karşılar; WebSocket gerçek zamanlı olayları dinler. İkisi birlikte tek bir sunucuda yaşar.

Örnek: const io = socketIo(server); io.on("connection", (socket) => { socket.on("chat", (mesaj) => { io.emit("chat", mesaj); }); });. Bu, gerçek zamanlı sohbet akışıdır. İstemci bağlanır, chat olayı gönderir, sunucu bunu tüm istemcilere yayar. WebSocket, Express'ten ayrı bir olay döngüsü yönetir; ama aynı Node.js sürecinde çalışır. Bu, tek bir porttan hem HTTP hem gerçek zamanlı hizmet vermeyi sağlar.

Uygulama WebSocket katmanını ekle

Aşağıdaki iskelete const io = { on: () => {} } satırını ekle. console.log ile "WebSocket hazır" yaz.

Başlangıç kodu

index.js
const express = require("express");
const app = express();
app.get("/", (req, res) => res.json({ durum: "ok" }));
const db = { ready: true };
app.get("/db", (req, res) => res.json({ db: db.ready }));
// buraya io ekle
// buraya yaz
// "WebSocket hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
const express = require("express");
const app = express();
app.get("/", (req, res) => res.json({ durum: "ok" }));
const db = { ready: true };
app.get("/db", (req, res) => res.json({ db: db.ready }));
const io = { on: () => {} };
console.log("WebSocket hazır");

Beklenen çıktı

WebSocket hazır

Soru ve cevaplar

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

1 Parçayı rolüne eşle

Kavram Anlamı
express HTTP istekleri
io Gerçek zamanlı olaylar
app.get Rota tanımlar
io.on Bağlantı dinler

2 WebSocket hangi olayları işler?

index.js
io.on("connection", (socket) => {})
  • Gerçek zamanlı olayları Doğru cevap
  • HTTP isteklerini
  • CSS stillerini
  • Dosya yedeklerini

Açıklama: WebSocket gerçek zamanlı olayları işler.

3 io.on çağrısını tamamla

Soru
io.____("connection", (socket) => {});
Cevap
io.on("connection", (socket) => {});

Açıklama: io.on ile bağlantı dinlenir.

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