zeromq是对等视频聊天的正确解决方案

时间:2012-01-06 01:19:11

标签: video tcp chat zeromq peer

我想知道我对zeromq的看法是否正确?我正在考虑使用zeromq编写一个点对点聊天应用程序但是当我进一步阅读它时,zeromq似乎比使用的更低级别(tcp套接字)。 zeromq是否适合编写点对点聊天应用程序,或者此用例不适用?

2 个答案:

答案 0 :(得分:11)

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

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

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

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

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

  

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

答案 1 :(得分:0)

正如拉尔夫指出的那样,ZeroMQ非常高级,而不是低级别。此外,通常建议不要使用ZeroMQ进行视频,因为UDP支持是新的,尚未普及(see this answer)。通常,ZeroMQ是围绕使用TCP套接字构建的,虽然PUB / SUB体系结构模仿UDP,但您不会获得真正的UDP性能(这对于视频至关重要),因为TCP套接字上的错误检查使得很难获得延迟足够低以获得流畅的视频流。

相关问题