İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

JS Socket.IO Kullanarak Sohbet Uygulaması Yapma

oxcakmak

0
İyinet Üyesi
Katılım
2 Ağustos 2018
Mesajlar
158
Reaction score
47
Konum
Kocaeli
Arkadaşlarımız, ailemiz ve iş arkadaşlarımızla gerçek zamanlı olarak iletişim kurmamızı sağlayan sohbet uygulamaları günlük hayatımızın ayrılmaz bir parçası haline geldi. Ancak, gerçek zamanlı bir sohbet uygulaması oluşturmak, özellikle birden fazla kullanıcıyla ilgilenmek ve hızlı yanıt süreleri sağlamak söz konusu olduğunda zor olabilir. Bu yazıda, JS ve Socket.IO sohbet uygulamasının nasıl oluşturulacağını anlatacağım.

Socket.IO'yu Nedir?
Socket.IO, web istemcileri ve sunucular arasında gerçek zamanlı, çift yönlü iletişim sağlayan bir JavaScript kitaplığıdır. Tek bir TCP bağlantısı üzerinden düşük gecikmeli, tam çift yönlü iletişim sağlayan bir protokol olan WebSockets'i kullanır. Socket.IO, WebSockets'i desteklemeyen tarayıcılar için uzun yoklama gibi geri dönüş seçeneklerini de destekler.

Ortamın ayarlanması
Socket.IO'yu kullanmaya başlamak için Node.js ve Socket.IO kitaplığını içeren bir geliştirme ortamı kurmanız gerekir. Node.js'yi yükledikten sonra, Node.js için bir paket yöneticisi olan npm'yi kullanarak Socket.IO kitaplığını kurabilirsiniz:
Kod:
npm install socket.io

Sunucu taraflı komut dosyası oluşturma
Ardından, istemcilerden gelen iletileri işleyecek ve bunları diğer bağlı istemcilere yayınlayacak bir sunucu tarafı komut dosyası oluşturmanız gerekir. İşte bir Socket.IO sunucusu oluşturan ve bağlantıları dinleyen bir örnek:
Kod:
const io = require('socket.io')(3000);
io.on('connection', (socket) => {
console.log('New user connected');
socket.on('message', (message) => {
   console.log('Received message:', message);
   io.emit('message', message);
});
socket.on('disconnect', () => {
   console.log('User disconnected');
});
});
Bu kod gelen bağlantılar için 3000 numaralı bağlantı noktasını dinler ve yeni kullanıcı bağlantıları, alınan mesajlar ve bağlantı kesilmeleri gibi olayları günlüğe kaydeder. Bir istemci bir mesaj gönderdiğinde, sunucu bunu io.emit() kullanarak diğer tüm bağlı istemcilere yayınlar.

İstemci tarafı komut dosyası oluşturma
Artık bir sunucu tarafı komut dosyanız olduğuna göre, Socket.IO sunucusuna bağlanan ve mesaj gönderip alan bir istemci tarafı komut dosyası oluşturmanız gerekir. İşte Socket.IO kitaplığını içeren ve temel bir sohbet arabirimi oluşturan örnek bir HTML dosyası:
Kod:
<!DOCTYPE html>
<html>
<head>
   <title>Real-Time Chat</title>
   <script src="https://cdn.socket.io/4.5.0/socket.io.min.js"></script>
   <script>
     const socket = io('http://localhost:3000');
     socket.on('message', (message) => {
       const li = document.createElement('li');
       li.innerText = message;
       document.getElementById('messages').appendChild(li);
     });
     function sendMessage() {
       const input = document.getElementById('input');
       socket.emit('message', input.value);
       input.value = '';
     }
   </script>
</head>
<body>
   <h1>Real-Time Chat</h1>
   <ul id="messages"></ul>
   <div>
     <input type="text" id="input">
     <button onclick="sendMessage()">Send</button>
   </div>
</body>
</html>
Bu dosya bir CDN'den Socket.IO kitaplığını içerir ve http://localhost:3000 adresindeki sunucuya bağlanan yeni bir Socket nesnesi oluşturur. Bir mesaj alındığında, sohbet arayüzüne yeni bir liste öğesi ekler. Kullanıcı bir mesaj yazıp Gönder düğmesine tıkladığında, mesajı socket.emit() kullanarak sunucuya gönderir.

Sohbet uygulamasını geliştirme
Kullanıcı doğrulama, mesaj geçmişi ve özel mesajlaşma gibi özellikler ekleyerek sohbet uygulamasını geliştirebilirsiniz. Örneğin, kullanıcı bilgilerini bir veritabanında saklayabilir ve kullanıcıların sohbete katılmalarına izin vermeden önce kimliklerini doğrulayabilirsiniz. Ayrıca mesajları bir veritabanında saklayabilir ve kullanıcılar sohbete katıldığında görüntüleyebilirsiniz. Son olarak, bireysel kullanıcılar için ayrı sohbet odaları oluşturarak özel mesajlaşma ekleyebilirsiniz.

Sonuç olarak, PHP ve Socket.IO ile gerçek zamanlı bir sohbet uygulaması oluşturmak, web uygulamalarınıza gerçek zamanlı iletişim eklemenin güçlü bir yoludur. Bu adımları izleyerek ve ek özellikleri deneyerek, kullanıcılarınızın ihtiyaçlarını karşılayan sağlam ve ölçeklenebilir bir sohbet uygulaması oluşturabilirsiniz.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst