服务器发送事件:express使用SSE实现消息推送

本文探讨了如何避免使用定时器实现实时信息获取的缺点,转向使用服务器发送事件(SSE)进行服务器主动推送。SSE是一种基于HTTP协议的轻量级解决方案,适合单向推送需求,如未读消息通知。文中通过示例代码介绍了如何在Express应用中集成SSE。
摘要由CSDN通过智能技术生成

前言

最开始学习 ajax 的时候,为了实时获取最新信息(比如未读消息),通过定时器 setInterval 不断调用 API 。

这样做虽然可以实现效果,但是这种方法并不能判断后端是否有新的消息产生,只能通过客户端不断请求,浪费带宽和服务器资源。

最好的方法是在服务端生产新消息后,推送到客户端,也就是服务器主动推送。

实现

目前主流的服务端推送技术要算 web socket,它可以实现客户端和服务端的双向通信。

但是如果仅仅只是需要实现类似于“未读消息”这样的服务器单向推送需求,那 SSE 或许是个更好的解决方案。

服务器发送事件(Server-Sent Events,简称SSE),基于 HTTP 协议。它是通过发送流信息(streaming)来变通的实现服务器主动推送,类似于视频播放,目前在IE浏览器上还不适用。

sse.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<title></title>
		
	</head>
	<body style="padding<
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值