websocket

是什么

  • http协议的问题

http协议是一种无状态、无连接、单向的应用层协议。通信请求只能由客户端发起,服务端响应,它无法实现服务器主动向客户端发送消息。这种单向请求的特点,导致若服务器有联系的状态变化,客户端要获知很麻烦。

  • 以前的解决方案:

通过频繁的异步js和ajax请求实现长轮询——效率低,资源浪费。

websocket应运而生。它允许客户端和服务端之间进行全双工通信。这样任意一方都可以通过建立的连接将数据推送到另一端。

websocket只需建议一次连接,就可以一直保持连接状态。相比轮训效率更高。

长连接和短连接

长连接       短连接
定义客户端向服务端发请求建立连接,一旦建立成功,客户端就可以像服务端发送请求数据,服务端接收并且处理,返回响应后连接不断开客户端向服务端发请求建立连接,一旦建立成功,客户端就可以像服务端发送请求数据,服务端接收并且处理,返回响应后连接立即断开。若想重新发送请求,则需要重新建立连接
优点实现实时通信。客户端服务端随时随地向对方发消息节省服务端资源

如何用

  1. 前后端链接
    1. 搭建socket服务器 new WebSocket.server({port:8080},()=>{ });
    2. ws.on("connection");
    3. 前端进行链接 new Websocket('ws://localsocket:8080')
    4. ws.onOpen()
  2. 数据交互
    1. Client.on('message',()=>{})
    2. 前端主动发送数据
    3. 后端主动发送数据
    4. ws.onmessage=()=>{}
    5. ws.send
  3. 前后端断开
    1. 断开链接
    2. ws.on('close')
    3. ws.onClose()
  4. const ws =newWebSocket('ws://localhhost:8080/')
    ws.onopen =function(){
    console.log('服务器已链接');
    }
    ws.onmessage =(msg)=>{
    console.log('来自服务器的数据'+msg.data);
    }
    ws.onclose =()=>{
    console.log('服务器关闭');
    }

参考:

websocket详细介绍

WebSocket的具体作用,长链接和短连接的优势_Nil261的博客-CSDN博客_websocket长连接和短连接

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值