Optionen für Echtzeit-web-Benachrichtigungen und Aktualisierungen mit Comet/XMPP vs WebSocket-Technologien im Microsoft-stack?
Ich bin untersuchungsrahmen die architektonischen Optionen für ein Projekt, Rendern, live-updates (wie bei Facebook) der Aktivitäten der Benutzer - logins, Fotos, etc. Zwei Haupt-UI-Komponenten sind eine auto-Update-scrolling-Bereich, wo neue Benachrichtigungen aufgelistet werden (Fotos, etc.), und eine toolbar aktualisiert wird mit Dingen wie aktualisiert Botschaft zählt, usw.
Die Anwärter für diese sind Jabber/Comet/XMPP-basierten und WebSocket-Technologien.
Comet Lager:
WebSockets Lager:
Da diese die vorhandene Infrastruktur ist ein Microsoft-stack, möchte ich mir lieber nicht vorstellen, Java-basierte Server in den mix. Diese Aussage hinterlässt (ein sehr attraktiver) WebSync (Comet), und SuperWebSocket (WebSockets). Aber die Pokein DLL-Einbindung ist ziemlich nahtlos ein .Net-Projekt, wie gut.
Gibt es mehr echte Produktion WebSocket-Initiativen .Net? Ist es zu früh, um anzunehmen, WebSockets auf eine Microsoft-stack, und sollte ich gehen, zu Gunsten von so etwas wie Kazing?
Warte ich noch auf einen Bericht über unsere aktuelle user-base-browser-Typen und Versionen (überprüfung für HTML5-Kompatibilität). Ich bin zu Ahnen, dass diese Zahl zu niedrig sein (ältere user base). Wenn das der Fall ist, der Komet option wäre der Gewinner.
Was sind einige andere Dinge zu beachten?
Einen Blick auf einige der .Net-Initiativen, wie Sockets.IO und andere, ich denke das ist zu viel in seiner kindheit noch zu wenden, eine Produktion der großen Skala-system.
Kann ich einige Kommentare von jemand, der hat, benutzt die Technologien und Produkte, die oben aufgeführt sind?
Dank.
UPDATE
Ich bin immer noch auf der Jagd für einige gute WebSocket-Servern, die zuverlässig auf ein Niveau der Produktion. Ich fügte hinzu, XSockets und SignalR zu den Websockets camp nach kurzem, Sie zu finden. Hoewver, es gibt noch zwei wichtigsten Konkurrenten in dieser Zeit. Das könnte sein, nur wegen der Tatsache, dass Sie haben erstaunlich große marketing-teams, gutes material zur Verfügung für die Entwickler - API ' s und videos. Viele andere Implementierungen scheinen noch in neu-geboren Phasen, in denen Beispiele gegeben werden, die Konnektivität mit nur wenigen Kunden. Während dies zeigt, dass die Technologie, diese demos sind nicht gesichert, die mit erheblichen Nutzlast/Tragkraft Daten. Kaazing und LightStreamer tun erfüllen die Anforderungen unten.
XSockets hat einige schöne Beispiele, aber auch hier fehlen einige wirkliche Produktion Metriken.
Es scheint nicht, dass SignalR hat doch schon getestet, in einer echten Produktionsumgebung. Ein scale-out-Lösung ist in der Entwicklung, aber scheint nicht stabil aber. Freuen uns zu sehen, wie dieses Projekt in die Zukunft.
Primäre Anforderungen sind:
- Möglichkeit der Implementierung von fallback-Technologie (wenn HTML5/WebSockets sind
nicht verfügbar) - Hohe Anzahl gleichzeitiger verbindungen und die Anzahl der Nachrichten pro
zweite - Skalierbar - Möglichkeit zum hinzufügen von zusätzlichen Servern/Knoten für größere
Verkehr Anforderungen
- Ich wäre wirklich daran interessiert zu hören, wer Erfahrungen mit SignalR. Danke.
- ElHaix , was haben Sie am Ende gehen mit, und was würden Sie vorschlagen, jemanden zu Fragen, diese Frage heute?
Du musst angemeldet sein, um einen Kommentar abzugeben.
WebSync v4 verwendet WebSockets zusätzlich zu fallen wieder zurück an long-polling/callback-polling als nötig. Die WebSockets in der WebSync sind alle über standard-HTTP-ports, also wird es keine Probleme mit Routern/filrewalls/etc.
Auf einem "normalen" system, sollten Sie sehen, ~20k Auger (pro Knoten) und ~100k Nachrichten/Sek. Diese sind sehr groben zahlen, die aber, wie es hängt drastisch auf Ihr system und die Arten von Nachrichten, die Sie senden, etc. Wir haben gesehen, so hoch wie 50k Benutzer (pro Knoten) und (in einem anderen test) 300k Nachrichten/Sekunde.
(Disclaimer: ich arbeite für Gefrorenen Berg)
Gründen inkl. diejenigen, die bereits oben angeführt, würde ich gehen mit WebSockets.
Wenn du mit WebSockets, Sie könnten auch erwägen Autobahn WebSockets, eine high-performance-WS-server, unterstützt Windows, wo es läuft auf der Oberseite des IOCP - (I/O completion ports).
Letzteres ist wichtig, wenn Sie wollen, zu skalieren, zu große Verbindung zahlen (hundert tausend).
Disclaimer: ich bin Autor der Autobahn WebSockets. Die base tech ist OSS. Derzeit bereiten wir ein kommerzielles Angebot, ein real-time-messaging-hub zur Verfügung gestellt, der als virtual appliance (läuft auf VMware/Kugel) .. vollständig integrierte, gehärtete appliance. Letztere können Sie auch push-Benachrichtigung über den hub mit einem einfachen alten HTTP/POST .. es hat eine REST API, mit der Sie den Versand an die clients verbunden per WS. Wenn Sie interessiert sind, in der private beta-Test, Kontaktieren Sie mich ..
Scheint es, Sie bei der Auswahl der stabilsten Comet-Implementierungen verfügbar. Alle von Ihnen Aussehen, stabil, in der Lage, host-zehn bis hundert Tausende Benutzer pro Knoten und mehr.
So, was könnte der nächste sein? Zum Beispiel, PokeIn ist host alle Aspekte einer web-Anwendung über VisualJS.NET; Video-1, Video-2
Dies zeigt auch die built-in-Funktionen dieser Bibliothek und die Sorten, die Sie tun können..
Neben, neueste version unterstützt Base64-Serialisierung der Nachrichten, die zwischen client und server daher nicht mehr nackt JSON-Nachrichten auf Netzwerk-Pakete.
UPDATE: PokeIn 2.0 hat eine eingebaute WebSockets unterstützen.
Den performance-Gewinn erhalten Sie mit WebSockets gegenüber herkömmlichen comet-Lösungen in der mehrere Größenordnungen reichen; ich würde auf jeden Fall gehen Sie mit dem WebSockets-camp. Hier's eine traditionelle Komet Anbieter ist der Vergleich der zwei Techniken, Messung über 150x Faktor zu Gunsten von WebSockets (700ms vs. 3 ms bei 50.000 Benutzer).
Einige Notizen über Kaazing Namen:
Kaazing ist voll auf Microsoft-server-Plattform. Auch, Sie beachten, Kaazing unterstützt eine Reihe von client-Bibliotheken und-Technologien, einschließlich Microsoft stack: .NET und Silverlight, verwendet gerne von vielen unserer Kunden.
Darüber hinaus bietet Kaazing reiche business-Protokolle, die auf WebSockets, so dass Sie zu "sprechen" XMPP direkt in Ihrem client-code.
Über browser-Unterstützung: Kaazing bietet außergewöhnlich gute WebSocket-emulation, unterstützt alle Browser, inklusive alten Browsern, die alle den Weg zurück zum IE6. Sie können mehr darüber Lesen Sie in in diesem blog-post.
Bezüglich der Reife: die Kaazing WebSocket Gateway Versand seit 2009, und hat eine große Anzahl von hohe-Profil-Kunden in vielen Branchen einschließlich der Finanz -, Logistik -, gaming-und Einzelhandel; sehr ausgereifte Plattform mit top support.
SignalR gewinnt.
Nun, dass das Produkt ausgereift ist, es war ein Kinderspiel zu implementieren. Im wesentlichen bietet es, was diese $or einigen du$und dollar-Pakete Kosten, aber nicht die marketing-Dollars zu präsentieren einige wirklich Coole Umsetzungen.
Aus technischer Sicht können Sie erfüllen die gleichen Dinge mit SignalR. Wenn Ihr tech-Jungs etwas anderes behaupten, Sie wahrscheinlich nicht wissen, wie das umzusetzen, SignalR in einem load-balanced-Umgebung (oder auch auf eigene).