Frage

Ist es möglich, die Web-Server eine Nachricht an den Web-Browser ohne Comet senden zu lassen?

Jeder große Web-Unternehmen wie Facebook und Google nutzt Comet für diesen Zweck, und es scheint nur wie eine hässliche Hack warten, um verschwinden, wenn TCP-Verbindungen für gängige Browser aktiviert wurden.

War es hilfreich?

Lösung

  

Ist es möglich, den Web-Server zu lassen   eine Nachricht an den Web-Browser senden   ohne Comet?

Ja, es ist möglich, über Silverlight, Flex, Flash und Java-Applets.

  

Jeder große Web-Unternehmen wie Facebook   und Google nutzt Comet für diesen Zweck   und es scheint, wie ein hässlicher Hack   warten, um verschwinden, wenn tcp   Verbindungen wurden für große aktiviert   Browser.

TCP-Verbindungen a la HTML 5 Web Sockets wird das Problem nicht lösen. Sie sehen eine Menge Leute verwenden Google und Facebook von ihrem Arbeitsplatz, Universität oder Schule und Firewalls blockieren oft Nicht-Standard-Ports und Nicht-HTTP-Datenverkehr. So eine Lösung, die Nachrichten an einen Web-Browser sendet hat HTTP arbeitet immer und oft wie HTTP aussehen. Deshalb Google und Facebook Comet nutzen und wird dies auch sonst tun werden sie nicht in der Lage sein, einen großen Prozentsatz ihrer Nutzer zu erreichen. In der Tat werden einige Firewalls und Reverse-Proxys schließen HTTP-Verbindungen mit langer Laufzeit und so eine Verbindung Ajax Abfrage wird oft als Ausweichlösung verwendet. Ich kann so etwas wie StreamHub Reverse-Ajax vorschlagen, wenn Sie für einen Server suchen, der das Senden von Nachrichten fähig ist an den Browser via Reverse Ajax.

Andere Tipps

Warum denken Sie, Facebook und Google würde es tun, wenn es eine andere Möglichkeit wäre?

Nun, OK, gibt es andere Möglichkeiten. Sie könnten ein Java-Applet auf der Seite einbetten. Wenn das Java-Applet signiert ist, und der Benutzer gibt ihm die Erlaubnis, es könnte eine lang andauernde Verbindung für den Server öffnen, um es Ereignisse zu senden. Aber das würde Sie bekommen etwas, das war mehr zerbrechlich, benötigt mehr Interaktion mit dem Benutzer, langsamer war zu starten, und würden weniger Plattformen als Comet arbeiten.

Es gab einige Diskussionen über das Hinzufügen Server gesendet Veranstaltungen und Web-Sockets zu HTML5, aber das ist sehr vorläufig und wahrscheinlich wird es nicht in den Standard machen.

Als „Comet“ ist ein künstlicher Begriff für etwas, das das bestehende HTTP-Protokoll verwendet einen Push von Daten zu simulieren ich dort befürchten ist nichts, was man tun kann.

Die einzige Lösung wäre eine „Verstärkung“ des aktuellen Protokolls oder einige weit verbreitete wahrscheinlich Plugin-basierte Lösung ... Sie java dafür verwenden können. Dies wird jedoch andere Probleme steigen, weil im Grunde müssen Sie auf diesem Browser eingehende Verbindung haben.

Comet kann als nur einen langen abruf Ajax-Aufruf implementiert werden, so wird es eine Frage der Semantik sein. Hier zum Beispiel ist eine jQuery-Plugin , die Comet mit dem Bayeux-Protokoll oben auf jQuery-Ajax-Aufruf implementiert .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top