// sharedWorker.js 文件
let connections = {};
let reconnectInterval = 3000; // 重新连接间隔时间,单位:毫秒
onconnect = (event) => {
const port = event.ports[0];
port.onmessage = (event) => {
const data = event.data;
// console.log(event.data, "event.data"); // 确保这个日志在控制台中显示
if (data.type === 'connect') {
connectWebSocket(data.name, data.url, port, data.msg);
}
};
};
function connectWebSocket(name, url, port, msg) {
if (!connections[name]) {
const ws = new WebSocket(url);
ws.onopen = () => {
ws.send(JSON.stringify(msg));
setHeartbeat(ws, name, url, port, msg);
}
ws.onmessage = (event) => {
if (!event) {
return
}
if (connections[name]) {
connections[name].forEach(client => {
client.postMessage({ name: name, data: event.data });
});
SharedWorker结合WebSocket实现多窗口共享消息
于 2024-05-08 16:17:50 首次发布