Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne
À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques.
1. Qu'est-ce que WebSocket
WebSocket est un protocole de communication full-duplex sur une seule connexion TCP. Il peut établir une connexion persistante entre le navigateur et le serveur pour établir une communication en temps réel. Par rapport aux requêtes HTTP traditionnelles, WebSocket peut envoyer et recevoir des données plus rapidement.
2. Exemple d'analyse des besoins
Nous supposons que nous développons un système de réservation en ligne pour une salle de sport. Les utilisateurs peuvent sélectionner une période appropriée pour prendre rendez-vous via le site Web, et le système communiquera rapidement à l'utilisateur l'état de la période sélectionnée.
Sur la base des exigences ci-dessus, nous pouvons diviser le système en deux rôles : client et serveur. Le client fournit une interface exploitable par l'utilisateur et le serveur est responsable du traitement de la demande de réservation de l'utilisateur et de la transmission du statut de réservation en temps réel au client.
3. Implémentation du client
new WebSocket(url)
pour établir une connexion WebSocket au serveur. Où url
est l'adresse WebSocket du serveur. new WebSocket(url)
来建立到服务器的WebSocket连接。其中url
为服务端的WebSocket地址。const socket = new WebSocket("ws://localhost:8080/ws"); socket.addEventListener("open", (event) => { console.log("WebSocket连接已建立。"); }); socket.addEventListener("message", (event) => { const message = JSON.parse(event.data); console.log("收到消息:", message); });
function bookTimeslot(timeslot) { const message = { action: "book", timeslot: timeslot }; socket.send(JSON.stringify(message)); }
function updateTimeslotStatus(timeslot, status) { const element = document.getElementById(timeslot); element.innerHTML = status; }
<!DOCTYPE html> <html> <head> <script> const socket = new WebSocket("ws://localhost:8080/ws"); socket.addEventListener("open", (event) => { console.log("WebSocket连接已建立。"); }); socket.addEventListener("message", (event) => { const message = JSON.parse(event.data); console.log("收到消息:", message); updateTimeslotStatus(message.timeslot, message.status); }); function bookTimeslot(timeslot) { const message = { action: "book", timeslot: timeslot }; socket.send(JSON.stringify(message)); } function updateTimeslotStatus(timeslot, status) { const element = document.getElementById(timeslot); element.innerHTML = status; } </script> </head> <body> <h1>健身房预约系统</h1> <h2>可预约时间段:</h2> <ul> <li id="timeslot1"><button onclick="bookTimeslot('timeslot1')">8:00-9:00</button></li> <li id="timeslot2"><button onclick="bookTimeslot('timeslot2')">9:00-10:00</button></li> <li id="timeslot3"><button onclick="bookTimeslot('timeslot3')">10:00-11:00</button></li> </ul> </body> </html>
四、服务器实现
在服务器端,我们需要处理客户端发送的预约请求,并根据系统状态更新预约状态。同时,服务器还需要将新的预约状态发送给客户端。
ws
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); const timeslots = { timeslot1: "可预约", timeslot2: "可预约", timeslot3: "可预约" }; wss.on('connection', (ws) => { ws.on('message', (message) => { const data = JSON.parse(message); if (data.action === "book") { if (timeslots[data.timeslot] === "可预约") { timeslots[data.timeslot] = "已预约"; ws.send(JSON.stringify({ timeslot: data.timeslot, status: timeslots[data.timeslot] })); } } }); ws.send(JSON.stringify(timeslots)); });
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); const timeslots = { timeslot1: "可预约", timeslot2: "可预约", timeslot3: "可预约" }; wss.on('connection', (ws) => { ws.on('message', (message) => { const data = JSON.parse(message); if (data.action === "book") { if (timeslots[data.timeslot] === "可预约") { timeslots[data.timeslot] = "已预约"; ws.send(JSON.stringify({ timeslot: data.timeslot, status: timeslots[data.timeslot] })); } } }); ws.send(JSON.stringify(timeslots)); });
Mettre à jour le statut de réservation
Lorsque le serveur a un nouveau statut de réservation, nous devons mettre à jour l'affichage du statut sur la page Web.
ws
pour créer un serveur WebSocket. 🎜🎜rrreee🎜🎜Exemple complet de code de serveur🎜🎜rrreee🎜 5. Résumé🎜Cet article présente comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples complets de code côté client et côté serveur. En utilisant WebSocket pour établir une communication en temps réel, nous pouvons mettre en œuvre un système de réservation en ligne plus efficace et en temps réel. Il peut également être appliqué dans d’autres scénarios nécessitant une communication en temps réel. J’espère que cet article sera utile au développement de votre projet ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!