Fastify.js ile WebSocket Entegrasyonu Nasıl Yapılır


Fastify.js ile WebSocket Entegrasyonu Nasıl Yapılır

Giriş

Gelişen web teknolojileriyle birlikte gerçek zamanlı uygulamalara olan talep artıyor. Fastify.js, Node.js tabanlı, hızlı ve düşük kaynak tüketen bir web framework'üdür. Fastify.js ile WebSocket entegrasyonu sayesinde anlık bildirimler, sohbet uygulamaları ve canlı veri akışı gibi dinamik özellikler oluşturabilirsiniz. Bu makalede, Fastify.js ile WebSocket entegrasyonunun nasıl kolayca yapılabileceği adım adım anlatılacaktır.

Fastify.js ile WebSocket Entegrasyonu

Gerekli Paketlerin Kurulumu

WebSocket desteği için popüler fastify-websocket paketini kullanacağız. Öncelikle terminalde şu komutu çalıştırarak projeye Fastify ve eklentisini ekleyin:

npm install fastify fastify-websocket

Temel Sunucu Kurulumu

Fastify.js ile basit bir WebSocket bağlantısı kurmak için aşağıdaki örneği inceleyebilirsiniz. Sunucu, WebSocket üzerinden gelen mesajı alır ve client'a geri gönderir (echo yapar).

const fastify = require('fastify')();
const websocket = require('fastify-websocket');

fastify.register(websocket);

fastify.get('/ws', { websocket: true }, (conn, req) => {
  conn.socket.on('message', message => {
    // Gelen mesajı ekrana yaz
    console.log('Alınan mesaj:', message.toString());
    // Aynı mesajı client'a geri gönder
    conn.socket.send('Echo: ' + message);
  });
});

fastify.listen({ port: 3000 }, err => {
  if (err) throw err;
  console.log('Fastify.js WebSocket sunucusu 3000 portunda çalışıyor');
});

WebSocket Client Eklemek

Basit bir HTML sayfası ile Fastify.js WebSocket sunucusuna bağlantı kurmak için aşağıdaki örnek kullanılabilir:

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>Fastify.js WebSocket Entegrasyonu</title>
</head>
<body>
    <input type="text" id="mesaj" placeholder="Mesajınızı yazın">
    <button onclick="gonder()">Gönder</button>
    <div id="cevap"></div>
    <script>
        const soket = new WebSocket('ws://localhost:3000/ws');
        soket.onmessage = function(e) {
            document.getElementById('cevap').textContent = e.data;
        };
        function gonder() {
            const veri = document.getElementById('mesaj').value;
            soket.send(veri);
        }
    </script>
</body>
</html>

Sonuç

Fastify.js ile WebSocket entegrasyonu, sunucu ve istemci arasında çift yönlü, düşük gecikmeli haberleşme sağlar. Bu entegrasyonun sağladığı hız ve sade kod yapısı sayesinde anlık veri akışının gerekli olduğu projelerde Fastify.js tercih edebilirsiniz. Fastify.js ile WebSocket bağlantılarının kurulumu hızlı ve esnektir. Bu temel yapı üzerine, ölçeklenebilir ve güvenli gerçek zamanlı uygulamalar geliştirebilirsiniz.