Files
2023-11-22 01:30:51 +08:00

42 lines
777 B
JavaScript

let ws = new WebSocket("ws://127.0.0.1:4000");
ws.onopen = () => {
console.log('websocket opened');
}
ws.onclose = () => {
console.log('websocket closed');
}
ws.onmessage = (e) => {
console.log('recv:', e.data)
}
let timeout = 0;
let timer = null;
/**
* 发送消息到 Emacs
* @param {string} msg 消息内容
*/
function sendMsgToEmacs(msg) {
if (!(ws instanceof WebSocket) || ws.readyState !== WebSocket.OPEN) return;
ws.send(msg);
}
const range = 10;
function calcNextTimeout() {
return (Math.round(Math.random() * range) + 2) * 1000;
}
function schedule() {
sendMsgToEmacs(window.crypto.randomUUID());
window.clearTimeout(timer);
timeout = calcNextTimeout();
timer = window.setTimeout(schedule, timeout);
}
schedule();