即时通讯解决方案 -- polling -- SSE -- websocket

本文探讨了三种即时通讯解决方案:轮询(polling)、SSE(服务器发送事件)和WebSocket。轮询虽然简单,但可能导致无效的网络传输。SSE提供服务器到客户端的单向推送,而WebSocket则是全双工通信协议,适用于实时应用。文中还介绍了WebSocket的连接状态和事件方法。
摘要由CSDN通过智能技术生成


轮询(polling)

轮询概念:是指不管服务器端有没有更新,客户端(通常是指浏览器)都定时的发送请求进行查询。不管结果如何,客户端处理完第一次请求后到下一个定时时间点将继续下一轮的轮询。

**缺点:**当客户端以固定频率向服务器发起请求的时候,服务器端的数据可能并没有更新,这样会带来很多无谓的网络传输。当轮询时间过长则无法接收到更新数据。

**优点:**web应用场景可作为即时通讯类的解决方案,客户端在每次固定时间自动发起请求可做到实时更新数据。操作简单,无需做更多更改。

Example:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>实时获取时间</title>
</head>
<body>
	<script>
    //每隔一秒钟客户端发起一次请求以达到实时更新
		setInterval(function(){
    
			var xhr = new XMLHttpRequest();
			xhr.open('GET','/polling');
			xhr.onload=function(e){
    
				document.querySelector('body').innerHTML='时间:'+e.target.response
			}
			xhr.send()
		},1000)
	</script>
</body>
</html>
const Koa = require('koa')
const Router = require('koa-router')
const moment = require('moment') //格式化日期轻量级js库,返回一个格式化日期的虚拟属性
const serve = require('koa-static')

const app = new Koa();
const router = new Router()
app.use
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值