gpt4 book ai didi

php - 当 websocket 客户端太慢时 websocket 将如何工作?

转载 作者:行者123 更新时间:2023-12-02 00:49:53 24 4
gpt4 key购买 nike

我有连接到远程服务器的 websocket 客户端。
服务器每秒向我发送大量数据(每秒约 10 000 条短消息)。
我如何理解我的 websocket 客户端将有时间读取所有传入数据?
或者服务器可以理解 ws-client 不会读取所有数据并且会断开连接?
当 ws-client 太慢时,websocket 协议(protocol)将如何工作?

最佳答案

底层的websocket传输是TCP,这个协调不同速率发送和接收的话题叫做流量控制(它是TCP层的一个特性),这个特定的问题被称为“消费慢”(在发送出去的时候很常见) TCP 上的大量数据,例如金融市场数据)。

TCP 层允许在通信链路中的某些点进行缓冲,因此如果阅读器无法跟上服务器正在发送的字节,则可以将字节临时存储在这些缓冲区中(直到客户端能够处理它们)。读取端和发送端都可以有缓冲区,通常与套接字相关联。然而,这些通常是固定大小的。一旦这些缓冲区已满,服务器将在下一次尝试发送一些字节时面临选择:要么断开连接,要么等待(“阻塞”)直到缓冲区中有空间发送更多字节。

所以真的是服务器决定,我猜它很可能会断开连接(否则风险是由于完整的套接字缓冲区而在服务器上消耗越来越多的内存)。

关于php - 当 websocket 客户端太慢时 websocket 将如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58706503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com