webSocket是什么 有什么用

前言:

博主旨在记录,对应各种问题记录在案与同志们分享

借鉴与mdn文档(WebSocket - Web API 接口参考 | MDN)

什么是webSocket? 有什么优势?

WebSocket 是一种用于在客户端和服务器之间进行双向通信的协议。它提供了一种实时、高效、持久的连接方式,允许服务器主动向客户端推送数据,而不需要客户端发起请求。

在 JavaScript 中,可以使用 WebSocket API 来创建和管理 WebSocket 连接。

一、websocket与HTTP的区别

HTTP协议是一种无状态协议,每次请求都需要重新建立连接。而websocket协议则是一种长连接协议,可以保持客户端和服务器之间的连接状态。这就使得websocket具有实时性更好、传输效率更高等优势。

二、websocket实现方式

在前端,可以使用浏览器原生的WebSocket对象来进行websocket通信;而在后端,则需要使用相应语言提供的WebSocket库来实现。比如Java中可以使用Spring WebSocket、Netty等库来进行开发。

三、websocket应用场景

1.实时数据展示:对于需要实时展示数据的场景,使用websocket可以比轮询等方式更加高效地获取数据。

2.物联网设备监控:物联网设备通常需要定时上传数据,而使用websocket可以使得服务器能够即时接收到数据。

、使用

webSocket事件                                                                           webSocket方法

open       (连接建立时触发)                                                          send()       使用连接发送数据        

message (客户端接收服务端数据时触发()

error         (通信发生错误触发)

close         (连接关闭时触发)

接下来是代码演示

创建 WebSocket 对象:

const socket = new WebSocket('ws://example.com/socket');

// 或者使用加密的 SSL 连接
// const socket = new WebSocket('wss://example.com/socket');
监听 WebSocket 事件:

socket.addEventListener('open', () => {
  // 连接成功时触发
  console.log('WebSocket 连接已建立');
});

socket.addEventListener('message', (event) => {
  // 收到服务器发送的消息时触发
  const message = event.data;
  console.log('收到消息:', message);
});

socket.addEventListener('close', () => {
  // 连接关闭时触发
  console.log('WebSocket 连接已关闭');
});

socket.addEventListener('error', (error) => {
  // 发生错误时触发
  console.error('WebSocket 错误:', error);
});
发送和接收数据:

// 发送消息给服务器
socket.send('Hello, server!');

// 关闭连接
socket.close();

缺点

1.服务器压力过大:由于websocket连接是长连接,如果同时有大量客户端连接服务器,则可能会导致服务器压力过大。

2.数据安全问题:由于websocket通信是全双工的,可能会存在窃取数据的风险。

最后

对于一些特定的环境和场景可以优先考虑webSocket,比如局域网等等,它对于前端来说也是很好的伙伴

博主前端菜鸟,说法比较浅显 如有不足请前辈指正,交流学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值