【发布时间】:2021-09-12 09:38:43
【问题描述】:
我正在使用 ZMQ 允许多个客户端连接到服务器并使用 Pull/Push 模式发送视频数据流。现在的问题是客户端可以与服务器断开连接。我需要问是否存在可靠性问题,如果发送到服务器的数据被丢弃会发生什么。客户端是否会从一开始或从 ZeroMQ 中丢弃的位置开始发送视频流。使用 Pull/Push 模式是否有缓冲区来适应这个问题。
【问题讨论】:
我正在使用 ZMQ 允许多个客户端连接到服务器并使用 Pull/Push 模式发送视频数据流。现在的问题是客户端可以与服务器断开连接。我需要问是否存在可靠性问题,如果发送到服务器的数据被丢弃会发生什么。客户端是否会从一开始或从 ZeroMQ 中丢弃的位置开始发送视频流。使用 Pull/Push 模式是否有缓冲区来适应这个问题。
【问题讨论】:
通常ZeroMQ套接字会在由于临时网络错误而丢失连接时自动重新连接。
对于 PUSH 套接字,documentation 声明:
当一个 PUSH 套接字由于所有下游节点都达到高水位线而进入静音状态,或者如果根本没有下游节点,那么套接字上的任何发送操作都会阻塞,直到静音状态结束或在至少有一个下游节点可用于发送;消息不会被丢弃。
所以一个 PUSH 套接字会缓冲数据,如果它没有连接到下游的 PULL 套接字,最终会阻塞。
您应该能够通过暂时禁用或拔出网络来测试这一点。
【讨论】: