2024马士兵mca架构师《金九银十面试突击班》资料分享-百度网盘下载

【微信642620018,获取马士兵、图灵、珠峰前端、慕课网、极客时间等更多IT课程】

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适用于实时应用,如在线聊天、股票交易、游戏等。下面是 WebSocket 的快速入门教程:

1. WebSocket 概念

  • WebSocket:一种协议,允许在客户端和服务器之间建立持久连接,实现双向实时通信。
  • HTTP 和 WebSocket 的区别:HTTP 是请求-响应模型,每次请求都需要重新建立连接,而 WebSocket 是持久连接,可以进行双向通信。

2. WebSocket 工作原理

  1. 握手:客户端通过 HTTP 发起 WebSocket 握手请求。
  2. 建立连接:服务器确认握手请求后,建立 WebSocket 连接。
  3. 数据传输:在连接建立后,双方可以随时发送和接收消息。
  4. 关闭连接:双方可以随时关闭连接。

3. 客户端代码示例(JavaScript)

// 创建 WebSocket 对象
const socket = new WebSocket('ws://localhost:8080');

// 连接成功时触发
socket.onopen = function(event) {
    console.log('WebSocket is connected.');
    // 发送数据到服务器
    socket.send('Hello Server!');
};

// 服务器发来消息时触发
socket.onmessage = function(event) {
    console.log('Message from server: ', event.data);
};

// 连接关闭时触发
socket.onclose = function(event) {
    console.log('WebSocket is closed.');
};

// 错误时触发
socket.onerror = function(error) {
    console.log('WebSocket Error: ', error);
};

4. 服务器端代码示例(Node.js 使用 ws 库)

首先,你需要安装 ws 库:

npm install ws

然后编写服务器端代码:

const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });

server.on('connection', (socket) => {
    console.log('Client connected.');

    // 监听消息
    socket.on('message', (message) => {
        console.log('Received message: ', message);
        // 回复客户端
        socket.send('Hello Client!');
    });

    // 连接关闭时
    socket.on('close', () => {
        console.log('Client disconnected.');
    });

    // 发生错误时
    socket.on('error', (error) => {
        console.error('WebSocket Error: ', error);
    });
});

5. 测试 WebSocket

  1. 启动你的服务器代码。
  2. 打开一个 HTML 文件,包含前面提到的客户端 JavaScript 代码。
  3. 打开浏览器,访问 HTML 文件,查看控制台输出。

6. 常见问题

  • 如何处理连接断开和重连? 可以在客户端代码中处理 onclose 事件,并根据需要重新建立连接。
  • WebSocket 与 HTTP 的安全性? 使用 wss:// 而不是 ws:// 来进行加密传输。

以上就是 WebSocket 的基本入门教程。如果你有更多具体问题,欢迎继续提问!

马士兵mca架构师官网版地址:
https://www.mashibing.com/subject/1?activeNav=1&courseNo=910&courseVersionId=1638
全套课程体系230多门课都有,新上车请私聊微信redis001

参考链接:
https://www.mufc360.cn/archives/msb10263
https://www.cr7mufc520.cn/archives/msb10263
https://www.vx642620018.top/articles/2024/09/11/1726022380144.html