Tôi đã tự hỏi liệu ý tưởng của mình về zeromq có đúng không? Tôi đã nghĩ đến việc viết một peer to peer chat ứng dụng bằng cách sử dụng zeromq nhưng khi tôi đọc thêm vào nó zeromq có vẻ là mức độ thấp hơn so với những gì người ta sẽ sử dụng (tcp sockets). Zeromq có tốt để viết ứng dụng trò chuyện ngang hàng hay không hoặc trường hợp sử dụng này không áp dụng được không?Zeromq là giải pháp phù hợp để trò chuyện video ngang hàng
Trả lời
Thứ nhất, tôi sẽ không đồng ý với tuyên bố của bạn rằng zeromq là nhiều hơn mức thấp hơn so với ổ cắm. AFAICT zeromq trình bày một API tương tự như API socket. Tuy nhiên nó cũng có thể xử lý những thứ khác như gửi tin nhắn cho nhiều khách hàng với cùng một cuộc gọi gửi.
Thứ hai, câu hỏi của bạn không rõ ràng: ý nghĩa của bạn là tốt: Dễ viết (vì bạn tham khảo cấp thấp), đáng tin cậy, đủ hiệu quả, v.v ...? Bạn có thể sử dụng bất cứ điều gì bạn muốn, mức độ phức tạp thực hiện tất nhiên sẽ khác nhau.
Ngoài ra, bạn có thể sử dụng udp thay vì tcp trong ứng dụng trò chuyện video, vì nó là hơn quan trọng là dữ liệu đến thời gian hơn tất cả dữ liệu đến, nhưng đó là một chủ đề hoàn toàn khác. Nếu bạn có thể sử dụng zeromq với udp (và bạn sẽ phải nghiên cứu điều đó), tôi không thấy lý do tại sao bạn không thể sử dụng nó để trò chuyện video.
Yếu tố chính bạn cần xem xét là liệu bạn có thể gửi dữ liệu giữa các đồng nghiệp đủ nhanh để cung cấp QoS được chấp nhận hay không: AFAIR có RTT tối đa khoảng 300ms được coi là ok cho các dịch vụ đàm thoại.
Sau đây link áp dụng cho chính thức nhưng cũng nên áp dụng đối với reqirements video chat:
Hầu hết những người gọi nhận thấy độ trễ khứ hồi khi chúng vượt quá 250mSec, vì vậy ngân sách trễ một chiều thường sẽ là 150 mili giây. 150 mSec cũng được chỉ định trong khuyến cáo ITU-T G.114 là độ trễ một chiều mong muốn tối đa để đạt được chất lượng âm thanh cao. Ngoài thời gian chờ chuyến đi vòng quanh đó, người gọi bắt đầu cảm thấy khó chịu khi tổ chức một cuộc trò chuyện hai chiều và thường kết thúc nói chuyện với nhau. Với sự chậm trễ trong vòng 500 mSec và hơn thế nữa, các cuộc gọi điện thoại là không thực tế, nơi bạn gần như có thể kể một câu chuyện đùa và khiến người kia cười sau khi bạn rời khỏi phòng.
Khi Ralf chỉ ra, ZeroMQ rất cao cấp, không phải cấp thấp. Hơn nữa, thông thường người ta sẽ khuyên bạn không nên sử dụng ZeroMQ cho video đơn giản vì hỗ trợ UDP là mới và chưa phổ biến (see this answer). Nói chung, ZeroMQ được xây dựng xung quanh bằng cách sử dụng các cổng TCP, và mặc dù kiến trúc PUB/SUB bắt chước UDP, bạn sẽ không nhận được hiệu suất UDP thực (điều này rất quan trọng đối với video) vì việc kiểm tra lỗi trên ổ cắm TCP khiến khó có được độ trễ đủ thấp để có luồng video mượt mà.
- 1. Openfire vs ejabberd để trò chuyện dịch vụ khách hàng phát triển thành giải pháp trò chuyện đầy đủ
- 2. Cách thực hiện trò chuyện thoại và video
- 3. Giải pháp trò chuyện hoàn chỉnh trong NodeJs
- 4. Video ngang hàng từ iOS cho Android?
- 5. Mẫu thiết kế phù hợp cho một ứng dụng trò chuyện đơn giản
- 6. Varnishd là giải pháp bộ nhớ đệm phù hợp để sử dụng với Rails?
- 7. CA1819: Thuộc tính không được trả về mảng - Giải pháp thay thế phù hợp là gì?
- 8. Node.JS: Cách tạo Máy chủ trò chuyện HTTP?
- 9. Ứng dụng trò chuyện php
- 10. Bắt đầu trò chuyện video mà không cần tương tác với người dùng - Android
- 11. Trò chơi này có giải pháp
- 12. Thiết kế cơ sở dữ liệu cho phòng trò chuyện. Cần lưu mọi cuộc trò chuyện
- 13. Dịch vụ trò chuyện Android
- 14. Ứng dụng Websocket không phải là trò chơi, trò chuyện, khách hàng twitter hoặc chỉ số thị trường
- 15. Tạo ứng dụng trò chuyện bằng Ruby
- 16. Triển khai hệ thống trò chuyện: nơi lưu trữ dữ liệu trò chuyện?
- 17. Trò chuyện video trực tiếp cho iPhone và HTTP Live Streaming
- 18. Tạo bong bóng trò chuyện trong Android
- 19. ứng dụng trò chuyện: pubsubhubbub vs xmpp
- 20. Trò chuyện hoạt động như thế nào?
- 21. jquery Trò chuyện với PHP mySQL
- 22. Trò chơi/ứng dụng mạng P2P: Lựa chọn tốt cho máy chủ phù hợp "battle.net"
- 23. socket.io trò chuyện với phòng riêng
- 24. Giải pháp xếp hàng cho ASP.NET MVC
- 25. MySQL SELECT hàng phù hợp với Array?
- 26. Nhập văn bản vào XNA (để nhập tên, trò chuyện)
- 27. UIImagePickerĐiều khiển quay video với hướng ngang
- 28. độ phân giải tối thiểu chúng tôi có thể đặt cho video trên webrtc là bao nhiêu?
- 29. Thuật toán nào phù hợp nhất để giải quyết trò chơi tìm kiếm từ "Boggle" với Python
- 30. NSTextFieldĐóng thẳng hàng dọc, các giải pháp dường như làm đổ liên kết ngang
+1 cho "dữ liệu đến đúng giờ". Chỉ đùa thôi – aitchnyu