主线程,worker线程,html界面与服务器,通过websocket发送指令和接收服务器的回应,并将服务器的回复打印在html界面上

步骤 1: 创建HTML界面

首先,创建一个简单的HTML页面,包括一个按钮用于触发WebSocket消息发送,以及一个区域用来显示服务器的响应。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>WebSocket Example</title>
<script src="main.js"></script> <!-- 主线程的JS脚本 -->
</head>
<body>
<button onclick="sendMessage()">发送命令</button>
<div id="serverResponse">服务器响应将会显示在这里</div>
</body>
</html>

步骤 2: 主线程的JavaScript (main.js)

main.js中,我们创建WebSocket连接,初始化Worker线程,并定义消息处理逻辑。

// main.js
let socket;
let worker = new Worker('worker.js'); // 引入Worker脚本

// 初始化WebSocket连接
function initWebSocket() {
    socket = new WebSocket('ws://your-server-url'); // 替换为你的WebSocket服务器地址
    socket.addEventListener('open', () => {
        console.log('WebSocket 连接成功');
    });
    socket.addEventListener('message', (event) => {
        // 直接由Worker处理消息,这里不直接操作UI,因为我们将消息转发给Worker
        worker.postMessage(event.data);
    });
}

// 发送命令给服务器
function sendMessage() {
    if(socket.readyState === WebSocket.OPEN) {
        socket.send('{"action":"getStatus"}'); // 发送获取状态的命令
    } else {
        console.error('WebSocket 还未准备好');
    }
}

// 设置Worker的消息监听
worker.addEventListener('message', (e) => {
    document.getElementById('serverResponse').innerText = e.data; // 将Worker传来的内容显示在界面上
});

initWebSocket(); // 页面加载时初始化WebSocket

步骤 3: Worker脚本 (worker.js)

Worker脚本将负责接收主线程传递过来的WebSocket消息,并直接将这些消息再转发回主线程。

// worker.js
self.addEventListener('message', (e) => {
    // 直接将接收到的消息转发回主线程,不做额外处理
    self.postMessage(e.data);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值