ToB企服应用市场:ToB评测及商务社交产业平台

标题: 什么是WebSocket [打印本页]

作者: 惊落一身雪    时间: 2024-10-11 22:33
标题: 什么是WebSocket
WebSocket 是一种在单个 TCP 毗连上举行全双工通讯的协议。它被筹划用于在客户端和服务器之间创建持久毗连,以便实时数据互换。WebSocket 协议在 2011 年被标准化为 RFC 6455。

WebSocket 的特点

WebSocket 的工作原理

WebSocket 握手示例

客户端发送的 HTTP 请求
  1. GET /chat HTTP/1.1
  2. Host: example.com
  3. Upgrade: websocket
  4. Connection: Upgrade
  5. Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
  6. Sec-WebSocket-Version: 13
复制代码
服务器相应的 HTTP 相应:
  1. HTTP/1.1 101 Switching Protocols
  2. Upgrade: websocket
  3. Connection: Upgrade
  4. Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
复制代码
WebSocket 在 JavaScript 中的使用

在欣赏器中使用 WebSocket 非常简单,以下是一个根本的示例:
客户端代码

  1. // 创建 WebSocket 连接
  2. const socket = new WebSocket('ws://example.com/socket');
  3. // 连接打开时触发
  4. socket.addEventListener('open', (event) => {
  5.   console.log('WebSocket is open now.');
  6.   socket.send('Hello Server!');
  7. });
  8. // 接收到消息时触发
  9. socket.addEventListener('message', (event) => {
  10.   console.log('Message from server:', event.data);
  11. });
  12. // 连接关闭时触发
  13. socket.addEventListener('close', (event) => {
  14.   console.log('WebSocket is closed now.');
  15. });
  16. // 连接出错时触发
  17. socket.addEventListener('error', (event) => {
  18.   console.error('WebSocket error observed:', event);
  19. });
复制代码
服务器代码(Node.js 示例)

使用 ws 库在 Node.js 中创建 WebSocket 服务器:
  1. const WebSocket = require('ws');
  2. const wss = new WebSocket.Server({ port: 8080 });
  3. wss.on('connection', (ws) => {
  4.   console.log('Client connected');
  5.   ws.on('message', (message) => {
  6.     console.log('Received:', message);
  7.     ws.send('Hello Client!');
  8.   });
  9.   ws.on('close', () => {
  10.     console.log('Client disconnected');
  11.   });
  12. });
复制代码
WebSocket 的应用场景

总结

WebSocket 是一种在单个 TCP 毗连上举行全双工通讯的协议,实用于需要实时数据互换的应用场景。它通过握手创建持久毗连,客户端和服务器可以同时发送和接收消息。WebSocket 在欣赏器和服务器端都得到了广泛支持,实用于各种实时应用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4