WebSockets membenarkan komunikasi masa nyata, dupleks penuh antara pelanggan dan pelayan. Tidak seperti permintaan HTTP tradisional, yang berasaskan tindak balas permintaan, WebSockets membenarkan pelayan dan pelanggan menghantar mesej pada bila-bila masa, mendayakan ciri masa nyata seperti sembang langsung, pemberitahuan atau kemas kini data langsung.
Dalam aplikasi React, penyepaduan WebSocket boleh digunakan untuk membina ciri seperti sistem pemesejan, kemas kini langsung, penanda saham atau permainan berbilang pemain. React menyediakan cangkuk dan kaedah kitaran hayat komponen yang boleh membantu mengurus sambungan WebSocket.
WebSockets mewujudkan saluran komunikasi dua hala antara klien (pelayar) dan pelayan. Selepas jabat tangan awal (melalui HTTP), protokol WebSocket mengambil alih, mewujudkan sambungan berterusan.
Mari kita terokai cara mengintegrasikan WebSockets ke dalam aplikasi React. Kami akan menggunakan API WebSocket yang tersedia dalam kebanyakan penyemak imbas moden.
Mula-mula, buat sambungan WebSocket dalam komponen React anda. Kami akan menggunakan cangkuk useEffect untuk mewujudkan sambungan dan useState untuk mengurus mesej masuk.
import React, { useState, useEffect } from 'react'; const WebSocketExample = () => { const [message, setMessage] = useState(''); const [socket, setSocket] = useState(null); // Establish WebSocket connection useEffect(() => { const ws = new WebSocket('wss://example.com/socket'); // Replace with your WebSocket server URL // Set WebSocket object in state setSocket(ws); // Set up event listener for receiving messages ws.onmessage = (event) => { console.log('Message from server:', event.data); setMessage(event.data); // Store the incoming message in state }; // Clean up WebSocket on component unmount return () => { ws.close(); }; }, []); const sendMessage = () => { if (socket && socket.readyState === WebSocket.OPEN) { socket.send('Hello Server'); } }; return ( <div> <h1>WebSocket Integration Example</h1> <p>Message from server: {message}</p> <button onClick={sendMessage}>Send Message</button> </div> ); }; export default WebSocketExample;
WebSocket menyediakan beberapa acara untuk berinteraksi dengan:
Contohnya:
const ws = new WebSocket('wss://example.com/socket'); ws.onopen = () => { console.log('WebSocket connection established'); }; ws.onerror = (error) => { console.error('WebSocket error:', error); }; ws.onclose = () => { console.log('WebSocket connection closed'); };
Apabila bekerja dengan WebSockets, terutamanya dalam apl React, data yang anda terima mungkin perlu diproses atau dipaparkan dalam masa nyata. Anda boleh mengendalikannya dengan mengemas kini keadaan setiap kali mesej baharu diterima.
Sebagai contoh, bayangkan membina apl sembang langsung. Anda akan mengemas kini keadaan dengan mesej baharu dan menjadikannya secara dinamik:
const [messages, setMessages] = useState([]); ws.onmessage = (event) => { const newMessage = event.data; setMessages((prevMessages) => [...prevMessages, newMessage]); // Append new message to state };
Ini memastikan setiap mesej baharu ditambahkan pada senarai mesej sembang dan dipaparkan dalam UI.
Sambungan WebSocket mungkin terputus sekali-sekala dan pengendalian logik penyambungan semula boleh memastikan apl anda kekal teguh. Anda boleh melaksanakan logik penyambungan semula seperti berikut:
useEffect(() => { const connectWebSocket = () => { const ws = new WebSocket('wss://example.com/socket'); ws.onopen = () => console.log('WebSocket connected'); ws.onclose = () => { console.log('WebSocket disconnected, reconnecting...'); setTimeout(connectWebSocket, 1000); // Reconnect after 1 second }; return ws; }; const ws = connectWebSocket(); // Clean up WebSocket on component unmount return () => { ws.close(); }; }, []);
Kod ini akan cuba menyambung semula ke pelayan WebSocket apabila sambungan ditutup.
Terdapat beberapa perpustakaan pihak ketiga yang boleh memudahkan penyepaduan WebSocket dalam React:
Menyepadukan WebSockets ke dalam aplikasi React ialah cara yang berkuasa untuk mendayakan ciri masa nyata, seperti kemas kini data langsung atau pengalaman pengguna interaktif. Dengan cangkuk seperti useState dan useEffect, anda boleh mengurus sambungan WebSocket dengan mudah, menghantar dan menerima mesej serta memastikan UI anda disegerakkan dengan data masa nyata.
Atas ialah kandungan terperinci Penyepaduan WebSocket dalam React untuk Komunikasi Masa Nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!