6

Ich bin auf der Suche nach einer Lösung, um Ereignis von meinem Server zu Clients, die Android, iOS und Desktop (Web) Benutzer sein werden.Echtzeit-Messaging-Dienst für mobile und Desktop-Geräte

Ich habe schon einige Posts zu Parse, Amazon SNS und Google Cloud Messaging gesehen, aber keine von ihnen erwähnt die Geschwindigkeit und die gebräuchlichsten Anwendungen für sie oder den Vergleich mit einfachen TCP-Streams oder Websockets?

Ich brauche bis Ereignisse haben/Sekunde bi-directona l Durchsatz pro Client (¬1kb pro Ereignis) mit max 150ms Latenz.

Was sind Nachteile der Verwendung von nur einem TCP-Stream der Ereignisse im Vergleich zu WebSockets gegen SNS/Parse/GCM?

+0

Sie könnten auch msg-Bus-basierten Dienst wie Rabbitmq betrachten. –

+0

@RobertRowntree Ich habe mich gefragt, ob jemand Erfahrung mit diesen Tools hatte und Pro/Contra bereitstellen konnte. –

+0

Haben Sie eine bevorzugte Sprache wie: Java, PHP, js, net ...? – Chriss

Antwort

6

Push Notifications (GCM und APNs)

PROS: Sie können das Gerät erreichen, auch wenn die Client-Anwendung läuft nicht.

CONS: Geringer Durchsatz; hohe Latenz

Raw TCP

PROS: Hohe Durchsatz; geringe Wartezeit; bidirektional

CONS: Durchläuft keine typischen Proxies und Firewalls; benötigt der Client-Anwendung

WebSockets

PROS ausgeführt werden: Hoher Durchsatz; geringe Wartezeit; bidirektional; durchläuft Firewalls

CONS: Nicht alle Proxys unterstützen sie bereits; muss der Client-Anwendung

In Additionen ausgeführt werden, gibt es auch HTTP Streaming und HTTP Lange Polling.

3

können Sie ein SignalR versuchen.

ASP.NET SignalR ist eine neue Bibliothek für ASP.NET-Entwickler, die es unglaublich einfach macht Web-Funktionalität in Echtzeit, um Ihre Anwendungen haben

einer meiner Kollegen diese Bibliothek für Web, Fenster, android verwendet hinzufügen , Mac usw. für Echtzeit-Messaging.

2

hier können Sie einiges Benchmarks finden: http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/

diese mehr technischen Fragen können Ihnen oder andere helfen zu: What is the fundamental difference between WebSockets and pure TCP?

Zitat aus der akzeptierten Antwort:

Es ist einfacher, über TCP-Sockets zu kommunizieren, wenn Sie arbeiten innerhalb einer Intranet-Grenze, da Sie wahrscheinlich die Kontrolle über die Maschinen in diesem Netzwerk haben und Ports öffnen können, die für die TCP-Verbindungen geeignet sind.

Über das Internet kommunizieren Sie am anderen Ende mit dem Server eines anderen Benutzers. Es ist äußerst unwahrscheinlich, dass ein alter Sockel für Verbindungen offen ist. Normalerweise haben sie nur ein paar Standard-Ports wie Port 80 für HTTP oder 443 für HTTPS. Um mit dem Server kommunizieren zu können, müssen Sie sich mit einem dieser Ports verbinden.