websocket

1.什么是websocket

websocket是一个网络协议,主要用于客户端和服务器之间保持连接的情况下完成数据交互的一种网络协议,经常被用于网络客服应用中

HTTP:超文本传输协议,经常在浏览器和服务器之间的数据交互
HTTP是一种短链接协议,一个请求发送之后,一旦服务器返回数据,连接就会断开
更新网页数据:必须发送请求,获取响应后才能更新网页中展示的数据

解决方案:不能使用HTTP短连接,需要通过长连接的形式,完成连接保持,服务器才能通过保持的连接,给对应的客户端主动推送消息,长连接的实现方式比较常用,如websocket协议

2.案例:聊天室的实现

1.socket 第三方模块
支持websocket协议的操作模块,有一个支持很多语言环境的通用模块:socket.io
socket.io是一个独立的实时网络服务框架

2.常用api
服务端

const express = require('express')
const {createServe} = require('http')
const {server} = require('socket.io')

const app = express()
const httpServer = createServer(app)
const io = new Server(httpServer,{配置选项,如CORS跨域支持})

httpServer.listen(3000)

客户端

<script src='http://localhost:3000/socket.io/socket.io.js'></script>
<script>
//建立连接
let webSocket = io('http://localhost:3000')
</script>

消息交互:使用websocket对象,通过事件的监听和触发完成消息的交互

//监听事件,等待接收消息
websocket.on(事件名称,msg=>{回调函数中处理接收到的消息msg})

//触发事件:用于发送消息
websocket.emit(事件名称,消息内容) // 给对应的另一端发送消息
io.sockets.emit(事件名称,消息内容) //给所有连接的socket端发送消息

聊天室分房间

长连接操作过程中,数据的交互可以通过房间(room)的操作,进行消息隔离
websocket.join(room):加入房间的api
io.to(room).emit(event,msg): 给指定的房间发送事件对应的消息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值