Pusher vs Pubnub vs Open Source Socket.io / SignalR.net / Faye / jWebSocket [geschlossen]


72

Ich evaluiere derzeit Pusher und PubNub, um eine bidirektionale Echtzeitkommunikation zwischen meinen hauptsächlich Webclients und meinen Servern zu ermöglichen. Beide sehen beeindruckend aus, da die Dokumente von Pusher besser zu sein scheinen und die Skalierbarkeit und Zuverlässigkeit von PubNub eindeutig eine Stärke für sie darstellt.

Da ich jedoch ein Budget verwalte, befürchte ich, dass die Kosten für Pusher & PubNub für uns zu einem Problem werden könnten, und erwäge daher, eine der Open-Source-Alternativen zu verwenden - ich habe mich hauptsächlich mit Socket.io, Faye und jWebSocket.

Ich habe meine Bedenken, obwohl ich den Dienst selbst betreibe:

  • Hat jemand zuvor eine Socket.io oder eine andere Open Source-Lösung auf mehrere Server skaliert? PubNub behauptet, 1 Million Nachrichten pro Sekunde zu bearbeiten ! Ich bezweifle etwas, dass Socket.io dies ohne eine unergründliche Anzahl von Servern tun könnte, wenn es überhaupt funktionieren würde.
  • Gibt es Funktionen in den kostenpflichtigen Diensten, die ich wahrscheinlich später verpassen werde, wenn ich mich für Open Source-Lösungen entscheide?
  • Wird die Latenz wirklich ein Problem sein, wenn ich meinen Server trotzdem auf AWS habe? PubNub befindet sich an mehreren Standorten, daher erwarte ich, dass dies die Latenz verringern sollte. Wenn jedoch eine Nachricht aus den USA nach Japan gesendet werden muss, hilft ein Server in Japan nicht bei der Latenz, da er immer noch auf die eine oder andere Weise dorthin reisen muss.

Danke für den Hinweis.


3
Eine gute Liste von Alternativen existieren bei quora.com/What-are-alternatives-to-pusher-com Andere frei / bezahlt / offene Lösungen existieren wie: firebase.com goinstant.com fanout.io firehose.io
Patrick Hankinson

Der GoInstant-Service wurde eingestellt.
Gültig ab

Antworten:


21

Faye mit Node.js war für mich sehr einfach einzurichten und schnitt beim Testen anfangs sehr gut ab. Obwohl die Last in meiner App nur ungefähr 10 Anfragen pro Sekunde mit ungefähr 3000 offenen Verbindungen beträgt - als ich sie auf Live Node.js CPU umstellte, war die CPU-Auslastung auf 100% festgelegt (1 Kern von 8 auf meiner Box verfügbar). Ich war ein wenig enttäuscht und erwartete mehr.

Ich überlegte, Redis zu verwenden oder mehr als eine Knoteninstanz auf verschiedenen Ports auszuführen und dann die Last auf meinem Anwendungsende aufzuteilen, aber angesichts der Preise von PubNub schien es viel einfacher, all dies einfach auf diese zu verlagern.

Nachdem ich sowohl Pusher als auch PubNub ausprobiert hatte, stellte ich fest, dass PubNub sowohl für mich als auch für mich eine viel geringere Latenz ist (ich bin in Singapur gehostet und während Pusher für mich ~ 500 ms für mich war, war PubNub für mich ~ 250 ms Hin- und Rückfahrt von meiner Anwendung entfernt). Wenn Sie in den USA gehostet werden, ist der Unterschied wahrscheinlich viel geringer.

Ich habe mir auch Ape-Server angesehen, aber keine guten Tutorials / Dokumentationen zum Einrichten eines Publish / Subscribe-Modells gefunden, also habe ich es übersprungen - aber vielleicht bist du schlauer als ich und hast bessere Erfahrungen :)


18
Was meinst du mit "als ich es auf live node.js umgestellt habe"? Sie meinen, es auf einen Produktionsserver zu verschieben? War der Server ein Shared Hosting-Szenario? In AWS? Was sind die Spezifikationen? Auch 10 Anfragen pro Sekunde, ist das ein Verlag und 3000 Abonnenten? Sie haben also im Wesentlichen 30.000 Nachrichten in einer Sekunde zugestellt? Wenn ja, klingt das für mich verdammt gut für einen einzelnen Kern und ich würde erwarten, dass er gebunden ist. Bitte klären Sie Ihre Testmethode. Vielen Dank.
Slartibartfast

Über Ape schrieb sie "einfach zu installieren": ape-project.org/download/APE_Complete_Package.html :)
denis.peplin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.