短轮询通过客户端周期性地发起HTTP请求检查是否有新数据,延迟取决于轮询间隔:间隔设为1秒则平均延迟500毫秒,间隔设为5秒则平均延迟2.5秒。SSE 在服务器产生新数据的瞬间即可推送到客户端,延迟通常为毫秒级,在股票行情、实时通知等对时效性敏感的场景中具有压倒性优势。
短轮询无论是否有新数据,客户端都会按固定频率发起请求,服务器需要为每个请求执行完整的处理流程(路由、认证、数据查询等)。在高并发场景下,大量"无新数据"的轮询请求会消耗大量服务器资源。SSE 在无新数据时服务器无任何推送动作,仅维持连接空闲,仅在有新数据时才写入响应,服务器资源利用率显著更高。
短轮询频繁发起HTTP请求,每次请求都需进行TCP连接建立和(若为HTTPS)TLS握手,会显著增加移动设备的无线电使用时间和电量消耗。SSE 通过单一长连接传输所有推送数据,避免了频繁建立连接的开销,在移动设备上的能效表现明显更优,有助于延长电池续航时间。
短轮询的实现最简单,无需服务器特殊支持,适用于数据更新频率极低(如每小时更新一次)或客户端数量极少的内网管理场景。SSE 适用于需要"近实时"数据更新的场景,且服务器需支持HTTP长连接。在实际选型时,若轮询间隔可设置为较长(如30秒以上)且数据实时性要求不高,短轮询因其极简的架构仍有一定应用价值。