WebSocket server
- Node.js kursu
- İleri seviye
- Ders 38/83
- 5 dk
new WebSocket.Server ile sunucu kurmayı öğrenirsin.
WebSocket sunucusu
Bir WebSocket sunucusu oluşturmak: const wss = new WebSocketServer({ port: 8080 }). Bu, 8080 portunda dinleyen bir sunucu başlatır. İstemciler ws://sunucu:8080 adresine bağlanır.
Sunucu, bağlantı olaylarını dinler. wss.on("connection", (ws) => { ... }) her yeni istemcide tetiklenir. ws parametresi istemci bağlantısını temsil eder. ws.on("message", cb) ile mesajları, ws.send(data) ile mesaj gönderirsin. Sunucuyu kapatmak için wss.close() çağırırsın.
noServer seçeneği
Bazen WebSocket şunucusunu kendi HTTP şunucuna bağlamak istersin. { noServer: true } seçeneği bunu sağlar. Sunucu kendi portu yerine, HTTP şunucusunun 'upgrade' olayını dinler.
Bu desen, Express ve WebSocket'i aynı portta çalıştırmak için yaygındır. server.on("upgrade", (req, socket, head) => { wss.handleUpgrade(req, socket, head, (ws) => { ... }); }). Bu, tek bir portta hem HTTP hem WebSocket sunar; üretimde (production) proxy arkasında daha kolaydır.
Uygulama WebSocketServer türünü tekrar yaz
WebSocketServer sınıfını ws'den içe aktar. typeof WebSocketServer sonucunu yaz.
Başlangıç kodu
// modülü içe aktar, sunucu sınıfını al
// türünü yazÖrnek çözüm
const { WebSocketServer } = require("ws");
console.log(typeof WebSocketServer);Beklenen çıktı
function
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Seçenek adını tamamla
const wss = new WebSocketServer({ ____: 8080 })
const wss = new WebSocketServer({ port: 8080 })
Açıklama: port seçeneği dinlenecek portu belirler.
2 new WebSocketServer({ port: 8080 }) ne yapar?
- Dosya okur
- 8080 portunda sunucu başlatır Doğru cevap
- Veritabanı bağlar
- Ağ hızlandırır
Açıklama: Belirtilen portta bir WebSocket sunucusu başlatır.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
new WebSocketServer |
Sunucu oluşturur |
wss.on("connection") |
İstemci bağlanınca |
ws.on("message") |
Mesaj gelince |
ws.send |
Mesaj gönderir |