我想知道我对zeromq的想法是对的吗?我正在考虑使用zeromq来编写点对点聊天应用程序,但是随着我对其进一步阅读,zeromq似乎比使用(tcp套接字)更低级别。 zeromq是否适合编写点对点聊天应用程序或者这个用例不适用?zeromq是对等视频聊天的正确解决方案
回答
首先,我不同意你的说法,即zeromq是更多低于套接字。 AFAICT zeromq提供了一个类似于套接字API的API。但它也可以处理其他事情,例如使用相同的发送呼叫向多个客户端发送消息。
其次,你的问题不是很清楚:你的意思是什么好:易写(因为你指的是低级),可靠,足够高效等等?你可以使用你想要的任何东西,实现的复杂程度当然会有所不同。
此外,你应该使用UDP,而不是TCP在视频聊天应用,因为它是更重要数据到达timeously比所有数据到达,但是这是一个完全不同的话题。如果你可以在udp中使用zeromq(你必须研究它),我没有理由不能用它来进行视频聊天。
您需要考虑的主要因素是您是否可以足够快地在对等点之间发送数据以提供可接受的QoS:AFAIR对于会话服务,最大RTT约为300毫秒。
以下link适用于VOIP,但也应该适用于视频聊天reqirements:
大多数呼叫者发现往返延迟,当他们超过250毫秒,所以单向延迟预算通常是150毫秒。在ITU-T G.114建议中也规定了150毫秒作为实现高质量语音的最大期望单向延迟。除了往返延迟之外,来电者开始感到不安,进行双向对话并通常最终彼此交谈。在500毫秒的往返延迟和以后,电话是不切实际的,你几乎可以讲一个笑话,并在你离开房间后让另一个人笑。
正如Ralf指出的那样,ZeroMQ是非常高层次的,而不是低层次的。此外,通常会建议不要将ZeroMQ用于视频,这是因为UDP支持是新的并且还不普遍(see this answer)。通常,ZeroMQ是围绕使用TCP套接字构建的,尽管PUB/SUB体系结构模仿UDP,但您不会获得真正的UDP性能(这对于视频来说至关重要),因为TCP套接字上的错误检查使得难以获得延迟足够低以获得流畅的视频流。
- 1. 寻找安全的视频/音频/文本聊天解决方案(如BigBlueButton)
- 2. 针对移动应用程序的聊天解决方案
- 3. 哪个解决方案是正确的?
- 4. BizTalk是正确的解决方案吗?
- 5. 什么是一个好的开源聊天解决方案?
- 6. JSON解析正确的解决方案
- 7. 正在发送聊天中支持的聊天中的视频
- 8. 现成的论坛,聊天和PM解决方案的Django
- 9. 视频会议解决方案
- 10. 视频流媒体解决方案
- 11. 网络P2P视频confrence解决方案
- 12. Android视频通话解决方案
- 13. 付费观看视频解决方案
- 14. HTML5视频预载解决方案
- 15. 视频聊天12
- 16. WebRTC视频聊天
- 17. html5视频聊天
- 18. ASP.NET文本聊天和视频聊天
- 19. NodeJs中的完整聊天解决方案
- 20. 用于粘贴代码的好IM /聊天解决方案
- 21. .NET视频音频聊天
- 22. 使用AWS的群聊解决方案
- 23. 不确定的解决方案是正确的python类
- 24. WebGL中的视频聊天
- 25. Android上的视频聊天
- 26. OpenTok的NodeJS视频聊天
- 27. 针对移动聊天应用的NoSQL服务器解决方案?
- 28. 打开Jint解决方案正确
- 29. ZeroMQ挂在python多处理类/对象解决方案
- 30. 什么是选择真实解决方案的正确方法?
+1“数据到达”。开玩笑 – aitchnyu 2012-01-07 06:57:43