Socket Nedir ? Nodejs ile Socket Kullanımı ve Basit bir Chat Uygulaması Geliştirme

İletişim uygulamaları günümüzde oldukça yaygın hale gelmiştir. Bu tür uygulamaların temelinde, sunucu ve istemci arasında iletişim sağlayan bir teknoloji olan soketler (sockets) bulunmaktadır. Soketler, bilgisayar ağlarında uygulamalar arasında veri iletişimi sağlayan bir iletişim protokolüdür. Node.js ile geliştirme yaparken, soketlerin sağladığı iletişim özelliklerini kullanmak için Socket.io kütüphanesini kullanabiliriz.

Soket Nedir?

Soketler, bir bilgisayar ağı üzerinde iki uygulama arasında iletişim kurmalarını sağlayan bir ara yüzdür. Bir soket, belirli bir IP adresi ve port numarası üzerinden belirli bir protokolü kullanarak veri iletimine izin verir.

Node.js ve Socket.io

Node.js, JavaScript çalıştırabilen hızlı ve etkili bir platformdur. İstemciden alınan veriyi anında sunucuya iletmek ve sunucudan alınan veriyi anında istemciye iletmek için soketlerle birlikte kullanılabilir. Socket.io, bu işlevselliği sağlamak için kullanılan bir Node.js kütüphanesidir. Socket.io, gerçek zamanlı, çift yönlü ve olay tabanlı iletişim sağlar.

Basit Bir Chat Uygulaması Geliştirme

Öncelikle, Socket.io'yu projemize ekleyelim:

npm install socket.io

Şimdi, basit bir Node.js sunucusu oluşturalım ve Socket.io'yu kullanarak bir chat uygulaması geliştirelim:

// server.js

const http = require('http');
const express = require('express');
const socketio = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketio(server);

// Ana dizin için istek yönlendirmesi
app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

// Bağlantı olayı
io.on('connection', (socket) => {
    console.log('Bir kullanıcı bağlandı');

    // Mesaj alma olayı
    socket.on('chat message', (msg) => {
        console.log('Mesaj alındı: ' + msg);
        io.emit('chat message', msg); // Tüm bağlı istemcilere mesajı ilet
    });

    // Bağlantı kesilme olayı
    socket.on('disconnect', () => {
        console.log('Bir kullanıcı ayrıldı');
    });
});

// Sunucuyu dinle
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
    console.log(`Sunucu ${PORT} portunda çalışıyor`);
});

Şimdi, basit bir istemci dosyası oluşturup sunucuya bağlanalım:

 <!-- index.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Socket.io Chat Uygulaması</title>
    <script src="https://cdn.socket.io/4.0.1/socket.io.min.js"></script>
    <script>
        // Sunucuya bağlanma
        var socket = io();

        // Mesaj gönderme
        function sendMessage() {
            var message = document.getElementById('message').value;
            socket.emit('chat message', message);
            document.getElementById('message').value = '';
            return false;
        }

        // Sunucudan gelen mesajı alma
        socket.on('chat message', function(msg){
            var li = document.createElement('li');
            li.textContent = msg;
            document.getElementById('messages').appendChild(li);
        });
    </script>
</head>
<body>
    <ul id="messages"></ul>
    <form onsubmit="return sendMessage();">
        <input id="message" autocomplete="off" /><button>Gönder</button>
    </form>
</body>
</html>

Bu basit chat uygulaması, kullanıcıların birbirlerine gerçek zamanlı olarak mesaj göndermelerini sağlar. İstemci, mesajı yazıp göndermek için bir metin giriş alanına sahiptir ve mesajlar listelenir. İstemciler arasında iletişim, Socket.io aracılığıyla gerçekleştirilir.

Bu makalede, Node.js kullanarak Socket.io'yu nasıl kullanacağınızı ve basit bir chat uygulaması nasıl geliştireceğinizi öğrendiniz. Bu temel bilgileri kullanarak daha karmaşık ve özellikli iletişim uygulamaları geliştirebilirsiniz.

YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

0 YORUM

Bu konuya henüz yorum yapılmamış

Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.