Mi chiedevo se la mia idea di zeromq è giusta? Stavo pensando di scrivere un'applicazione di chat peer-to-peer usando zeromq, ma man mano che lo rileggo, zeromq sembra essere più basso di quello che si vorrebbe usare (socket tcp). Zeromq è buono per scrivere app di chat peer-to-peer o questo caso d'uso non è applicabile?Zeromq è la soluzione giusta per la chat video peer-to-peer
risposta
In primo luogo, non sarei d'accordo con la tua affermazione che zeromq è più di livello inferiore ai socket. AFAICT zeromq presenta un'API simile all'API socket. Tuttavia può anche gestire altre cose, come l'invio di messaggi a più client con la stessa chiamata di invio.
In secondo luogo, la tua domanda non è molto chiara: cosa intendi per buona: Facile da scrivere (poiché ti riferisci a basso livello), affidabile, efficiente, ecc.? Puoi usare qualsiasi cosa tu voglia, il livello di complessità di implementazione sarà ovviamente diverso.
Inoltre, probabilmente si dovrebbe utilizzare UDP invece di TCP in un'applicazione di video chat, dato che è più importante che i dati arrivino in tempo utile rispetto che arriva tutti i dati, ma che è tutto un argomento diverso. Se puoi usare zeromq con udp (e dovrai fare ricerche su questo), non vedo perché non potresti usarlo per la chat video.
Il fattore principale da considerare è se è possibile inviare dati tra i peer abbastanza velocemente per fornire una QoS accettabile: AFAIR un RTT massimo di circa 300 ms è percepito come ok per i servizi di conversazione.
Di seguito link vale per VOIP, ma dovrebbe valere anche per le chat video reqirements:
La maggior parte dei chiamanti noti ritardi di andata e ritorno quando superano 250ms, in modo che il budget di latenza unidirezionale sarebbe tipicamente 150 ms. 150 mSec viene inoltre specificato nella raccomandazione ITU-T G.114 come massima latenza unidirezionale desiderata per ottenere una voce di alta qualità. Al di là della latenza di andata e ritorno, i chiamanti iniziano a sentirsi a disagio in una conversazione a doppio senso e di solito finiscono per parlare gli uni con gli altri. Con ritardi di andata e ritorno di 500 mSec e oltre, le telefonate sono poco pratiche, dove puoi quasi dire una battuta e far ridere l'altro dopo che hai lasciato la stanza.
Come sottolinea Ralf, ZeroMQ è di livello molto alto, non di basso livello. Inoltre, in genere si sconsiglia di utilizzare ZeroMQ per i video semplicemente perché il supporto UDP è nuovo e non ancora universale (see this answer). Generalmente, ZeroMQ è stato costruito usando i socket TCP, e sebbene l'architettura PUB/SUB simuli UDP, non si otterranno prestazioni UDP reali (che è cruciale per il video) perché il controllo degli errori sui socket TCP rende difficile ottenere la latenza abbastanza basso da ottenere un flusso video uniforme.
- 1. plastica SCM. È la soluzione giusta?
- 2. Django: get_object_or_404 non è la soluzione giusta, ma che cos'è?
- 3. La produzione ZeroMQ è pronta?
- 4. Come implementare la chat vocale e video
- 5. Spring è la scelta giusta per me?
- 6. RestEasy è la scelta giusta?
- 7. Openfire vs ejabberd per la chat del servizio clienti che evolve verso la soluzione di chat completa
- 8. Trovare la giusta baseaddress
- 9. Qual è la prestazione prevista di ZeroMQ?
- 10. Varnishd è la soluzione di caching giusta da usare con Rails?
- 11. Lucene: è la risposta giusta per un indice enorme?
- 12. Erlang è la scelta giusta per un webcrawler?
- 13. Idee per ridimensionare la chat in AWS?
- 14. qual è la soluzione alternativa per paymentWithProductIdentifier?
- 15. Soluzione di chat completa in NodeJ
- 16. Qual è la soluzione migliore per un problema parallelo imbarazzante?
- 17. La soluzione più semplice per un bot che pubblica una chat su Hangouts di google?
- 18. Progettazione database per chat room. È necessario salvare ogni chat
- 19. Amazon SQS è la scelta giusta qui? Rails performance issue
- 20. Thrift, .NET, Cassandra - Questa è la combinazione giusta?
- 21. Avvia chat video senza interazione dell'utente - Android
- 22. Qual è la giusta posizione dei letterali in String Comparison?
- 23. Qual è la logica dietro il contesto zeroMQ?
- 24. Quanto è scalabile ZeroMQ?
- 25. Produrre la giusta semantica HTML con Django
- 26. Buona IM/chat soluzione per incollare il codice
- 27. Qual è la migliore soluzione di soluzione MVC3?
- 28. Soluzione di confronto video P2P Web
- 29. ZeroMQ è pronto per l'uso di produzione?
- 30. Live Video Chat per iPhone e HTTP Live Streaming
+1 per "i dati arrivano puntualmente". Stavo solo scherzando – aitchnyu