Node.js Websockets, bir araya getirildiğinde, web geliştiricilerinin gerçek zamanlı web uygulamaları oluşturmak için kullanabileceği iki popüler teknolojinin birleşimidir.
Ayrıca, çeşitli türlerde dosya içe aktarımını işleyebilen bir API platformuna ihtiyacınız varsa, Apidog'u indirmeyi düşünün! 👇 👇 👇
"Node.js WebSockets"in, gerçek zamanlı web uygulamaları oluşturmak için işbirliği içinde kullanılan iki farklı teknolojiye atıfta bulunduğunu anlamak çok önemlidir. Bunlar tek bir varlık olarak kabul edilmemelidir. Daha fazla uzatmadan, önce Node.js ve WebSockets'in özünde ne olduğunu anlayalım.
Node.js Nedir?
Node.js, kullanıcılarının JavaScript kodunu bir web tarayıcısının dışında çalıştırmasına olanak tanıyan, açık kaynaklı, platformlar arası bir JavaScript çalışma zamanı ortamıdır. Bu nedenle Node.js, JavaScript kodlamasından yararlanabilecek çeşitli yazılım uygulamalarını ve sistemleri sınırlamaz!

Node.js'i Geliştiriciler İçin Cazip Hale Getiren Temel Özellikler
- JavaScript her yerde: Node.js ile, hem ön uç (istemci tarafı) hem de arka uç (sunucu tarafı) geliştirmesi için aynı dili (JavaScript) kullanabilir, tutarlılık sağlayabilir ve geçiş maliyetlerini azaltabilirsiniz.
- Olay güdümlü mimari: Node.js, engellemeden birden fazla eşzamanlı isteği verimli bir şekilde işler, bu da onu gerçek zamanlı ve ölçeklenebilir uygulamalar oluşturmak için ideal hale getirir.
- Zengin ekosistem: Node.js, kullanıcıların çeşitli işlevler için binlerce kullanılabilir kitaplık ve çerçeve sağlamasıyla büyük ve aktif bir topluluktan yararlanır. Ayrıca, Node.js ile ilgili yardım için YouTube'da birçok video bulabilirsiniz.
- Platformlar arası uyumluluk: Node.js, Windows, macOS, Linux ve diğer büyük işletim sistemleri gibi çeşitli platformlarda sorunsuz bir şekilde çalışabilir.
Projeleriniz İçin Ne Zaman Node.js Kullanmayı Düşünmelisiniz?
Node.js, öncelikle geleneksel web sayfalarının ötesinde yazılımlar oluşturmak için bilinir. Bu nedenle, yazılımınızın bir parçası olarak aşağıdaki kullanım durumlarına sahip olmayı planlıyorsanız, Node.js kullanmayı şiddetle düşünebilirsiniz:
- Web geliştirme: Node.js, API'ler, dinamik içerik oluşturma ve gerçek zamanlı özellikler gibi web uygulamaları için sunucu tarafı bileşenleri oluşturmada mükemmeldir.
- Mikro hizmetler: Node.js, kolayca dağıtılabilen ve ölçeklenebilen küçük, bağımsız hizmetler oluşturmaya yardımcı olabilir.
- Komut satırı araçları: Node.js, görevleri otomatikleştirmeye ve sistem yardımcı programları oluşturmaya yardımcı olabilir.
- Nesnelerin İnterneti (IoT): Gerçek zamanlı yetenekleri nedeniyle bağlı cihazlar için uygulamalar geliştirin.
- Veri akışı: Node.js kullanarak veri akışlarını verimli bir şekilde işleyin ve analiz edin.
Yazılımınızın Bir Parçası Olarak Node.js Kullanmanın Faydaları
- Öğrenmesi kolay: Zaten JavaScript biliyorsanız, Node.js'i öğrenmek nispeten basittir.
- Geniş topluluk ve kaynaklar: Node.js, yeni ve mevcut Node.js kullanıcılarına faydalı destek ve en iyi uygulamalar sunan çok sayıda kitaplık, çerçeve ve eğitim materyaline sahiptir.
- Ölçeklenebilir ve çok yönlü: Node.js, çeşitli uygulama türlerine uyum sağlayabilir ve büyüyen kullanıcı tabanlarıyla iyi ölçeklenir.
WebSockets Nedir?
WebSockets, bir istemci (bir web tarayıcısı gibi) ve bir sunucu arasında gerçek zamanlı, karşılıklı iletişim sağlayan bir iletişim protokolüdür. Ayrıca, hem istemcilerin hem de sunucuların aynı anda mesaj göndermesini ve almasını sağlayarak, yazılım için daha etkileşimli ve duyarlı bir deneyim sağlar.
WebSockets'in bir protokol olduğunu unutmayın, yani herhangi bir dosya türüne girmezler. Ancak, yine de bir WebSocket'in güvenliğine dikkat etmeniz gerekir!
WebSockets'i Diğer Protokollerden Ayıran Temel Özellikler
- Tam çift yönlü iletişim: Hem istemci hem de sunucu aynı anda mesaj gönderip alarak, WebSockets sorunsuz, gerçek zamanlı iletişim sağlayabilir.
- Kalıcı bağlantı: Her mesaj için bağlantıları açıp kapatmak yerine, WebSockets istemci ve sunucu arasında tek, kalıcı bir bağlantı kurar. Bu, ek yükü azaltır ve verimliliği artırır.
- Gerçek zamanlı veri değişimi: Veriler anında gönderilir ve alınır, bu da geleneksel HTTP isteklerinden çok daha hızlı ve daha duyarlı bir deneyim yaratır.
- Azaltılmış sunucu yükü: Kalıcı bir bağlantı ve itme tabanlı iletişim ile, sunucuların istemci isteklerini beklemesi gerekmez, bu da iş yüklerini azaltır ve daha fazla bağlantıyı yönetmelerine olanak tanır.
WebSockets Kullanmaktan Elde Edebileceğiniz Potansiyel Faydalar
- Esneklik: WebSockets, Python, JavaScript, Java ve daha fazlası gibi çeşitli programlama dilleri ve platformlarla kullanılabilir. Bu, onları farklı geliştirme ortamlarına ve uygulamalara çok yönlü ve uyarlanabilir hale getirir.
- Daha düşük gecikme süresi: Açık, kalıcı bağlantı gecikmeleri en aza indirir ve mesajların neredeyse anında teslim edilmesini sağlar. Canlı yayın, işbirliğine dayalı düzenleme ve gerçek zamanlı finansal veri güncellemeleri gibi, tutarlı bir bağlantıya dayanan uygulamalar için özellikle önemlidir.
- Verimlilik ve ölçeklenebilirlik: WebSockets, tekrarlanan bağlantı kurulumlarına ve kapanışlarına olan ihtiyacı azaltarak kalıcı bir bağlantı kurar. Bu, artan verimliliğe ve gelişmiş ölçeklenebilirliğe yol açar, bu da WebSockets'i yüksek hacimli eşzamanlı bağlantıları ve gerçek zamanlı veri değişimini yönetmek için ideal hale getirir.
Web Uygulamaları Oluşturmak İçin Node.js ve WebSockets Nasıl Birleştirilir?
İşte Node.js ve WebSockets ile gerçek zamanlı web uygulamaları oluşturmaya yönelik adım adım bir kılavuz!
- Bir kitaplık seçin:
Node.js'de WebSockets'i uygulamanıza yardımcı olması için seçebileceğiniz birkaç popüler kitaplık vardır:
- ws: Kullanımı kolay bir API'ye sahip hafif bir kitaplık. Daha basit projeler için idealdir.
- socket.io: Odalar, ad alanları ve yayın gibi ek özellikler sağlar, bu da onu karmaşık uygulamalar için iyi yapar.
- express-ws: Mevcut Express uygulamalarıyla entegrasyon sunan, Express çerçevesi için bir uzantı.
2. Node.js sunucunuzu ayarlayın:
http
veya express
gibi modülleri kullanarak bir Node.js sunucusu oluşturun. Bu sunucu, gelen bağlantıları dinleyecek ve yönlendirme ve diğer sunucu tarafı mantığını işleyecektir.
3. WebSocket'i uygulayın:
- Dinlenecek bağlantı noktasını belirterek, seçtiğiniz kitaplığı kullanarak bir WebSocket sunucusu oluşturun.
Bu adımda, farklı senaryolar için olay işleyicileri de tanımlamalısınız:
- Bağlantı: Bir istemci bağlandığında, WebSocket kimlik doğrulama, yetkilendirme ve ilk veri alışverişini işler.
- Mesaj: Bir istemci bir mesaj gönderdiğinde, onu işleyin, diğer istemcilere yayınlayın (gerekirse) ve gerekirse bir yanıt gönderin.
- Bağlantı kesme: WebSockets bağlantı kesmeyi ve temizlemeyi düzgün bir şekilde işleyebilir.
4. İstemci tarafı entegrasyonu:
İstemci tarafında (genellikle bir web tarayıcısında), WebSocket sunucunuza bağlanmak için ws
veya socket.io-client
gibi JavaScript kitaplıklarını kullanabilirsiniz.
- Bir bağlantı kurun ve sunucu yanıtlarını ve alınan mesajları işleyin.
- Gelen verilere ve güncellemelerere tepki vermek için istemci tarafında olay işleyicileri uygulayın.
Node.js ve WebSockets'in Kod Parçacığı (Temel Sohbet Uygulaması Örneği)
Bugün bulabileceğiniz çoğu web uygulamasının ilgili ön ve arka uç kısımları vardır. İşte basit bir sohbet uygulaması örneğinde birlikte çalışan hem Node.js hem de WebSockets teknolojilerinin örnekleri.
Sunucu tarafı (Arka uç) Kodu [Node.js]
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
console.log('Client connected');
ws.on('message', (message) => {
console.log(`Client message: ${message}`);
wss.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
});
ws.on('close', () => {
console.log('Client disconnected');
});
});
console.log('WebSocket server listening on port 8080');
Kod Açıklaması:
ws
:ws
kitaplığını içe aktarır.wss
değişkeni 8080 numaralı bağlantı noktasındaWebSocket.Server
kullanarak bir WebSocket sunucusu oluşturur.connection
olayı: Bir istemci bağlandığında, bir mesaj kaydeder vemessage
veclose
için olay işleyicileri tanımlar.message
olayı, alınan mesajı kaydeder, bağlı tüm istemcileri döngüye alır ve mesajı her açık istemciye gönderir.close
olayı Bir istemci bağlantısını kestiğinde bir mesaj kaydeder.
İstemci tarafı (Ön uç) Kodu [Javascript]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WebSocket Chat</title>
</head>
<body>
<input type="text" id="message" placeholder="Type your message..." />
<button id="send">Send</button>
<div id="messages"></div>
<script>
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => {
console.log('Connected to server');
};
ws.onmessage = (event) => {
const message = event.data;
console.log(`Received message: ${message}`);
const messagesDiv = document.getElementById('messages');
messagesDiv.innerHTML += `<p>${message}</p>`;
};
const sendButton = document.getElementById('send');
sendButton.addEventListener('click', () => {
const messageInput = document.getElementById('message');
const message = messageInput.value;
ws.send(message);
messageInput.value = '';
});
</script>
</body>
</html>
Kod Açıklaması:
ws
kullanarak sunucuya bir WebSocket bağlantısı oluşturur.open
olayı, bağlantı kurulduğunda bir mesaj kaydeder.message
olayı, alınan mesajı kaydeder vemessages
kimliğine sahip HTML öğesinde görüntüler.send
düğmesi tıklama olayı, mesajı giriş alanından alır vews.send
kullanarak sunucuya gönderir ve giriş alanını temizler.
Node.js ve WebSockets ile API'ler Oluşturma (Kod Parçacıklarıyla Gösterilir)
Ayrıca, yeni oluşturduğunuz web uygulamanız içinde kullanmak üzere kendi API'lerinizi de oluşturabilirsiniz! (Lütfen bu makalede sağlanan kodun yalnızca gösterim amaçlı olduğunu unutmayın.)
1. Node.js Ortamını Ayarlayın:
- Node.js ve npm'yi (Node Package Manager) yükleyin
- Bir proje dizini oluşturun ve başlatın:
npm init -y
2. Gerekli Kitaplıkları Yükleyin:
Bu kod satırını çalıştırarak WebSockets için ws
kitaplığını yüklemeniz gerekecektir: npm install ws
. Ayrıca, bu kod satırını kullanarak Express aracılığıyla Express gibi yönlendirme ve HTTP isteklerini işlemek için bir web çerçevesi yüklemeniz gerekecektir: npm install express
.
3. WebSocket Sunucusunu Oluşturun (JavaScript):
const WebSocket = require('ws');
const express = require('express'); // If using Express
const app = express(); // If using Express
const wss = new WebSocket.Server({ port: 8080 });
// HTTP request handling (if using Express)
app.get('/', (req, res) => {
res.send('Hello, world!');
});
// WebSocket connection handling
wss.on('connection', (ws) => {
console.log('Client connected');
ws.on('message', (message) => {
console.log(`Received message: ${message}`);
// Process the message and potentially send a response
});
ws.on('close', () => {
console.log('Client disconnected');
});
});
// Start the server
app.listen(8080, () => {
console.log('Server listening on port 8080');
});
Bu adımdan sonra, WebSocket Sunucusuna ws://localhost:8080
gibi WebSocket URL'si aracılığıyla erişebilirsiniz.
4. API Uç Noktalarını Tanımlayın (JavaScript):
ws.on('message', (message) => {
const data = JSON.parse(message);
const action = data.action;
if (action === 'getData') {
ws.send(JSON.stringify({ data: 'Some data' }));
} else if (action === 'sendMessage') {
// Handle message sending logic
}
});
5. İstemci Tarafı Etkileşimini Oluşturun (JavaScript):
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => {
console.log('Connected to server');
ws.send(JSON.stringify({ action: 'getData' }));
};
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
console.log(response);
};
Apidog - İdeal Test API Platformu
Node.js WebSocket web uygulamanızı oluşturduktan sonra, amaçlandığı gibi çalıştığından emin olmak için test etmeniz gerekecektir.
Apidog, tüm API sorunlarınız için mükemmel bir hepsi bir arada çözümdür. Yalnızca bir API'nin tek uç noktalarını test etmekle kalmaz, aynı zamanda API'nizin yayınlanmaya hazır olduğundan emin olmak için çok adımlı bir test senaryosu da oluşturabilirsiniz!

Bu makalenin ws://localhost:8080
URL'sini kullandığı gibi, WebSocket sunucunuz zaten URL'de çalıştığına göre, bir WebSocket isteği oluşturmaya başlayabiliriz!
Apidog Kullanarak Bir WebSocket İsteği Oluşturma

İlk olarak, Node.js WebSocket API'nizi veya uygulamanızı test etmek için yalnızca yeni bir API isteği oluşturun. Ayrıca, yeni bir istek anında oluşturmak için Ctrl + T
kısayolunu da kullanabilirsiniz.

Boş, adsız bir istek görebilmelisiniz. Burada, belirli bir API URL'si oluşturabilir, istenen HTTP yöntemini ayarlayabilir ve Node.js WebSocket API'nizi veya uygulamanızı test etmeyi planladığınız sorgu parametrelerini ekleyebilirsiniz.
Sonuç
Node.js ve WebSocket teknolojilerinin birleşimi, geliştiricilerin ilginç ve kullanışlı uygulamalar oluşturmasını sağlayabilir. Özellikle gerçek zamanlı sohbet odaları ve canlı yayın gibi işlevleri etkinleştirmede güçlüdürler!
Apidog ayrıca, gerektiğinde WebSocket isteklerinin oluşturulmasını ve değiştirilmesini de sağlayabilir. Kullanıcılar, isteklerin yanı sıra Apidog ile API'ler oluşturabilir, test edebilir, hata ayıklayabilir ve taklit edebilir.