node 后端创建 websocket

本文介绍了WebSocket协议的背景、优点,特别关注其在Web开发中的实时推送功能,并展示了如何用Node.js实现WebSocket服务器。通过对比HTTP,强调了WebSocket的高效性和双向通信能力。
摘要由CSDN通过智能技术生成

简介

在正式开始之前,我觉得有必要简单介绍一下 WebSocket 协议,引入任何一个东西之前都有必要知道我们为什么需要它。在 Web 开发领域,我们最常用的协议是 HTTP,HTTP 协议和 WS 协议都是基于 TCP 所做的封装,但是 HTTP 协议从一开始便被设计成请求 -> 响应的模式,所以在很长一段时间内 HTTP 都是只能从客户端发向服务端,并不具备从服务端主动推送消息的功能,这也导致在浏览器端想要做到服务器主动推送的效果只能用一些轮询和长轮询的方案来做,但因为它们并不是真正的全双工,所以在消耗资源多的同时,实时性也没理想中那么好。

    既然市场有需求,那肯定也会有对应的新技术出现,WebSocket 就是这样的背景下被开发与制定出来的,并且它作为 HTML5 规范的一部分,得到了所有主流浏览器的支持,同时它还兼容了 HTTP 协议,默认使用 HTTP 的80端口和443端口,同时使用 HTTP header 进行协议升级。

    和 HTTP 相比,WS 至少有以下几个优点:

  1、   使用的资源更少:因为它的头更小。
  2、  实时性更强:服务端可以通过连接主动向客户端推送消息。
  3、  有状态:开启链接之后可以不用每次都携带状态信息。

后端用node 搭建一个 websocket

//引入ws模块
const WS_MODULE = require("ws")
//用express框架创建一个服务器
const app = express();
//用http协议 创建一个 http 服务器,用于websoket 监听
const server = http.createServer(app)
// 创建 websocket 服务器
const ws = new WS_MODULE.Server({ server })
//定义一个全局服务器,方便获取
global.ws = ws

// 在其他文件中 这样获取

let ws = global.ws 
//监听连接的websocket
ws.on("connetion",(cnnc,msg)=>{

    cnnc.on()
})
//在路由模块 引入 全局 ws 

let ws = global.ws

//监听前端连接与断开状况 

ws.on('connection',(cnns,msg)=>{

    //这里写需要推送信息的逻辑 给个定时器 不断推送信息 关闭时清楚定时器即可
    
    let timer = setInterva(()=>{
        
    },1000)
})


ws.on('close',(code,msg)=>{

    clearInterval(timer)
})

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值