Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么WebSocket比服务器发送事件快_Javascript_Html_Performance - Fatal编程技术网

Javascript 为什么WebSocket比服务器发送事件快

Javascript 为什么WebSocket比服务器发送事件快,javascript,html,performance,Javascript,Html,Performance,您好,我现在是accross,我不明白为什么服务器发送的事件在将数据从服务器推送到客户端时速度较慢 我可以看出,由于XHR的HTTP开销,SSE在双向通信(如聊天应用程序)中的速度较慢。如果您查看第6页的图表,您会发现这种说法主要是基于SSE上的“服务器更新”较慢 这是正确的,因为服务器端事件是一种将数据推送到客户端的技术,而不是将数据发送到服务器!这些需要新的HTTP请求,并且可能需要建立新的TCP(有时是TLS)连接,这对于卫星链路和CPU和内存较慢的移动设备来说是非常昂贵的 这使得论文的作

您好,我现在是accross,我不明白为什么服务器发送的事件在将数据从服务器推送到客户端时速度较慢


我可以看出,由于XHR的HTTP开销,SSE在双向通信(如聊天应用程序)中的速度较慢。

如果您查看第6页的图表,您会发现这种说法主要是基于SSE上的“服务器更新”较慢

这是正确的,因为服务器端事件是一种将数据推送到客户端的技术,而不是将数据发送到服务器!这些需要新的HTTP请求,并且可能需要建立新的TCP(有时是TLS)连接,这对于卫星链路和CPU和内存较慢的移动设备来说是非常昂贵的

这使得论文的作者认为websocket速度更快,这并不是一个完全正确的结论,无论交互类型和传输的数据是什么


我不是在这里比较功能。Websocket和SSE显然解决了相似但不同的问题,并且应该被评估为适用于特定的项目,不应该有一个通用的答案来使用一个或另一个。

我认为这里有两个效应结合在一起,导致Websocket比SSE“更快”的说法

影响1:SSE的有效负载与消息比率较低 正如您所注意到的,在双向通信模式中,与更紧凑的负载和使用WebSockets进行仔细的协议设计相比,HTTP请求/响应的开销通常更大

效果2:SSE可能涉及会话重新连接 正如@alexsergeyev正确指出的,SSE会话可以重新连接,但在大多数现代浏览器中,这仅仅意味着SSE会话确实可以使用池TCP连接重新创建,因此

结合这两种效果,并将吞吐量(以字节/秒为单位)定义为指标,我希望我们可以看到,即使对于单向服务器到客户端通信,由于这两种效果,WebSocket的吞吐量也会更好

据我所知,随着WebSocket感知中介的采用,SSE的角色将随着时间的推移而减少。现在,如果您的安全故事依赖HTTP,您可能会选择SSE,除非您有硬实时要求。如果您这样做,Kaazing Enterprise WebSocket网关为大多数安全系统内置了SSO集成