WebSocket
- Node.js kursu
- İleri seviye
- Ders 81/83
- 6 dk
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
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
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?
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
io.____("connection", (socket) => {});
io.on("connection", (socket) => {});
Açıklama: io.on ile bağlantı dinlenir.