webSoket 简介

对比 http / SSE

http 是一种即时链接,请求发送给服务器处理完经过四次挥手就断了,服务端没办法再通过链接给客户端服务

SSE 是一种单向长链接,客户端只能发送一次请求建立连接后就不能再请求,而服务端可以一直返回,一般用于可视化大屏项目

webSoket 是一种长链接,能一直和服务端保持通信,双方都能给对方主动发送服务。一般用于实时通讯等

webSocket 协议一般都是 ws:// 或者 wss:// 和 http https 一样 多一个 s 就代表有证书

使用第三方库

服务端一般都是使用 socket.io ,根据文档教程引入使用

客户端一半使用的是 socket.io-client

// 服务端
import { Server } from "socket.io"
import { createServer } from "http"

const app = new Koa()

const httpServer = createServer(app.callback())

const io = new Server(httpServer)

// 代表有人链接了端口
io.on("connection", socket => {
  // socket 代表监听哪个端口
  console.log("socket -- port -- ", socket)
})

httpServer.listen(1996, () => {
  console.log(`开始监听端口1996...`)
})