我想知道我對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