5

I was wondering if my idea of zeromq is right? I was thinking of writing a peer to peer chat application using zeromq but as i read further into it zeromq seems to be more low level than what one would use (tcp sockets). Is zeromq good for writing peer to peer chat app or is this use case not applicable?

4

2 回答 2

11

首先,我不同意您的说法,即 zeromq比套接字底层。AFAICT zeromq 提供了一个类似于套接字 API 的 API。但是,它也可以处理其他事情,例如使用相同的发送调用向多个客户端发送消息。

其次,您的问题不是很清楚:您所说的好是什么意思:易于编写(因为您指的是低级),可靠,足够高效等?你可以使用任何你想要的东西,实现的复杂程度当然会有所不同。

此外,您可能应该在视频聊天应用程序中使用 udp 而不是 tcp,因为数据及时到达比所有数据都到达更重要,但这是一个完全不同的主题。如果您可以将 zeromq 与 udp 一起使用(并且您必须对此进行研究),我认为您没有理由不能将其用于视频聊天。

您需要考虑的主要因素是您是否可以足够快地在对等方之间发送数据以提供可接受的 QoS:对于会话服务,大约 300 毫秒的最大 RTT 被认为是可以的。

以下链接适用于 VOIP,但也应适用于视频聊天要求:

大多数呼叫者会在超过 250 毫秒时注意到往返延迟,因此单向延迟预算通常为 150 毫秒。ITU-T G.114 建议中还指定 150 毫秒作为实现高质量语音所需的最大单向延迟。除了往返延迟之外,呼叫者开始对进行双向对话感到不安,并且通常最终会互相交谈。在 500 毫秒及以上的往返延迟时,打电话是不切实际的,你几乎可以在你离开房间后讲一个笑话并让其他人笑。

于 2012-01-06T08:16:00.383 回答
0

正如 Ralf 所指出的,ZeroMQ 是非常高级的,而不是低级的。此外,通常会建议不要将 ZeroMQ 用于视频,因为 UDP 支持是新的且尚未普及(请参阅此答案)。通常,ZeroMQ 是围绕使用 TCP 套接字构建的,尽管 PUB/SUB 架构模仿 UDP,但您不会获得真正的 UDP 性能(这对视频至关重要),因为 TCP 套接字上的错误检查使得很难获得延迟足够低以获得流畅的视频流。

于 2017-02-17T21:40:47.863 回答