我以前從未使用過 websockets、webworkers 以及與之相關的所有東西。顯然,我迷路了,我不知道如何正確地做到這一點。
我已經學會如何製作 websocket 並讓它在伺服器連接埠中成功工作。另外,載入一個網路工作者(但這不能直接刷新網站)。
當使用者連線時,一切正常。 Websocket 正在向用戶發送訊息,用戶正在刷新其網站。
問題是當我想與許多其他用戶一起使用它時(不同的選項卡或瀏覽器來模擬不同的用戶)。僅適用於下一個透過 websocket 連線的用戶,不再適用於其他用戶。
我分享一個圖表只是為了讓大家更容易理解我想要做什麼。
還有一點是。對於伺服器和用戶來說,我必須使用哪種語言來獲取此資訊? Python、NodeJs、Php(這些是我唯一知道如何使用的)。
P粉4764755512023-11-24 11:30:39
已解決!
只需產生一個分配給每個客戶端的編號(可以是彼此之間不同的裝置),然後將伺服器產生的隨機數字傳送到每個連線!
在「連接」之前,您應該要新增:
const WS = require('ws'); const WS_PORT = 8081 const express = require('express'); const app = express(); const PORT = 3000; app.listen(PORT, () => console.log(`Server listening , go to http://localhost:${PORT}`)); app.use(express.static('public')); const wss = new WS.Server({ port: WS_PORT }) const wsSelected = new Set(); // Creating connection using websocket const interval = setInterval(() => { const randomNumber = Math.floor(Math.random() * 100); //Sending same number to each client wsSelected.forEach(ws => ws.send(randomNumber) ) }, 2000);
在「連接」之後,您應該新增:
wss.on("connection", ws => { console.log("New client!"); //This line you should add wsSelected.add(ws); ...