Rumah > Artikel > hujung hadapan web > Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript
Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian
Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus.
1. Apakah itu WebSocket
WebSocket ialah protokol untuk komunikasi dupleks penuh pada satu sambungan TCP. Ia boleh mewujudkan sambungan berterusan antara penyemak imbas dan pelayan untuk mencapai komunikasi masa nyata. Berbanding dengan permintaan HTTP tradisional, WebSocket boleh menghantar dan menerima data dengan lebih cepat.
2. Analisis keperluan sampel
Kami mengandaikan bahawa kami sedang membangunkan sistem tempahan dalam talian untuk gim. Pengguna boleh memilih tempoh masa yang sesuai untuk membuat temu janji melalui laman web, dan sistem akan segera memberi maklum balas status tempoh masa yang dipilih kepada pengguna.
Berdasarkan keperluan di atas, kami boleh membahagikan sistem kepada dua peranan: klien dan pelayan. Pelanggan menyediakan antara muka yang boleh dikendalikan pengguna, dan pelayan bertanggungjawab untuk memproses permintaan tempahan pengguna dan menolak status tempahan masa nyata kepada pelanggan.
3. Pelaksanaan pelanggan
WebSocket(url)
baharu untuk mewujudkan sambungan WebSocket ke pelayan. Di mana url
ialah alamat WebSocket pelayan. 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)); });
Kemas kini status tempahan
Apabila pelayan mempunyai status tempahan baharu, kami perlu mengemas kini paparan status di halaman web. . status. Pada masa yang sama, pelayan juga perlu menghantar status tempahan baharu kepada pelanggan.
ws
untuk mencipta pelayan WebSocket. 🎜🎜rrreee🎜🎜Contoh kod pelayan lengkap🎜🎜rrreee🎜 5. Ringkasan🎜Artikel ini memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian, dan menyediakan contoh kod sisi klien dan pelayan yang lengkap. Dengan menggunakan WebSocket untuk mencapai komunikasi masa nyata, kami boleh melaksanakan sistem tempahan dalam talian yang lebih cekap dan masa nyata. Ia juga boleh digunakan dalam senario lain yang memerlukan komunikasi masa nyata. Saya harap artikel ini akan membantu pembangunan projek anda! 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!