Aplikasi real-time sangat penting untuk membangun pengalaman pengguna yang interaktif di era platform digital saat ini. Aplikasi obrolan, permainan langsung, dasbor pasar saham, alat kolaboratif - apa pun yang baru saja Anda pikirkan, kemungkinan besar itu adalah sesuatu dengan fungsionalitas waktu nyata sebagai inti keberhasilannya. Di sinilah WebSockets, sebuah protokol yang memungkinkan komunikasi dupleks penuh melalui koneksi tunggal antara klien dan server, menjadi yang terdepan. Dikombinasikan dengan Node.js, runtime JavaScript sisi server secepat kilat (Terhubung ke acara secara real time) Banyak aplikasi paling dinamis di web didukung oleh WebSockets.
Apa itu WebSockets?
Pengantar WebSockets WebSockets adalah protokol standar dari tahun 2011 yang menyediakan saluran dua arah yang berkesinambungan dan dua arah antara klien dan server. Tidak seperti HTTP, yang menggunakan model request-response, WebSockets memungkinkan transmisi dua arah aliran data tanpa permintaan HTTP yang berulang. Hal ini membuat mereka sangat cocok untuk latensi rendah, kasus penggunaan dengan interaksi tinggi seperti:
- Aplikasi Obrolan Langsung
- Game Multiplayer Online
- Alat Kolaborasi Waktu Nyata
- Siaran Langsung Olahraga dan Pembaruan Keuangan
- Streaming Data IoT
WebSockets dibangun di atas Transmission Control Protocol (TCP) dan menggunakan mekanisme framing yang ringan, sehingga membuatnya efisien dan cocok untuk aplikasi real-time berskala besar.
sumber: forproger.ru |
Mengapa Menggunakan Node.js dengan WebSockets?
Node. js, yang dikenal dengan arsitektur non-blocking berbasis event yang sangat cocok untuk aplikasi berbasis WebSocket. Model berbasis event-nya membantu pengembang mengelola beberapa jalur koneksi secara simultan tanpa beban bahasa sisi server tradisional.
Keuntungan utama menggunakan Node.js dengan WebSockets meliputi:
- Skalabilitas: Node.sh dapat mendukung ribuan koneksi WebSocket secara bersamaan dengan I/O asinkron.
- Performa: Berkat arsitekturnya yang ringan dan event loop yang tidak memblokir, Node.js stanwood untuk komunikasi real-time.
- Ekosistem yang kaya: Library seperti ws dan framework seperti Socket.IO menyederhanakan implementasi WebSocket dalam aplikasi Node.js.
Soket Web Node: Pengembangan Aplikasi Waktu Nyata js
Langkah 1: Menyiapkan Lingkungan
mkdir websocket-chatcd websocket-chatnpm init -ynpm install ws
Langkah 2: Membangun Kode Server
const WebSocket = require('ws');// Create a WebSocket serverconst wss = new WebSocket.Server({ port: 8080 });console.log('WebSocket server running on ws://localhost:8080');// Handle new connectionswss.on('connection', (ws) => {console.log('New client connected');// Listen for messages from the clientws.on('message', (message) => {console.log(`Received: ${message}`);// Broadcast the message to all connected clientswss.clients.forEach((client) => {if (client.readyState === WebSocket.OPEN) {client.send(message);}});});// Handle disconnectionws.on('close', () => {console.log('Client disconnected');});});
Langkah 3: Membuat Klien Sederhana
<!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><h1>WebSocket Chat</h1><textarea id="chat" cols="30" rows="10" readonly></textarea><br><input type="text" id="message" placeholder="Type a message..."><button onclick="sendMessage()">Send</button><script>const ws = new WebSocket('ws://localhost:8080');const chat = document.getElementById('chat');const messageInput = document.getElementById('message');ws.onmessage = (event) => {chat.value += event.data + '\n';};function sendMessage() {const message = messageInput.value;ws.send(message);messageInput.value = '';}</script></body></html>
Langkah 4: Jalankan Aplikasi
node server.js