2009-05-11 3 views
5

Ich arbeite an einer privaten Messaging-Funktionalität für meine Website, gibt es eine Möglichkeit, Push-Benachrichtigungen vom Server zu erhalten, dass der Benutzer eine neue Nachricht erhalten hat?Echtzeit-Chat mit Push-Benachrichtigung

Die einzige Technik, die ich kenne, besteht darin, den Server ständig über Ajax abzufragen, um zu sehen, ob es neue Nachrichten gibt, und das Messenger-Fenster bei Bedarf neu zu laden.

danke für eine Rückmeldung!

UPD: bisher folgende Richtungen identifiziert wurden:

1) Comet
2) BOSH - Bidirektionale Ströme über synchrone HTTP
3) XMPP - das ist, was Google Talk auf

basiert
+1

nur eine Anmerkung BOSH und XMPP gehen Hand in Hand. – Kinlan

Antwort

5

Sie könnten in XMPP und BOSH zu suchen. Sehr kometartiges und ejabberd kombiniert mit nginx kann Tausende von Verbindungen auf einer sehr kleinen Box aufrechterhalten.

Werfen Sie einen Blick auf eines meiner Projekte www.vooices.us, um zu sehen, was wir mit XMPP und BOSH getan haben.

http://www.ejabberd.im/

http://github.com/ssoper/jquery-bosh/tree/master JQueryBosh - schnellen und einfachen Zugriff auf XMPP über HTTP ermöglichen

Es ist relativly einfach einzurichten und zu installieren.

Paul.

+0

Aber funktioniert es in sagen wir Internet Explorer? –

+0

Ja, es funktioniert sehr gut. Um fair zu sein habe ich es nicht in IE6 versucht, aber ich habe IE7 und IE8 getan – Kinlan

+0

Die gute Sache ist, dass es alles Javascript aus der Client-Perspektive ist. – Kinlan

0

Es gibt keine Möglichkeit, dass der Server Informationen an den Client sendet, aber Sie können immer Comet verwenden. Ja, Sie würden den Server abfragen, aber nicht ständig. Sie würden jede Verbindung für ungefähr 30 Sekunden offen halten (das ist das Intervall, das ich immer benutzt habe) und dann bei Bedarf eine neue Verbindung öffnen.

EDIT: Adobe Flash ermöglicht dauerhafte Verbindungen zum Server, so dass Sie das verwenden könnten. Einzelheiten finden Sie unter this article.

+0

Ich schaue auf badoo.com, sie verwenden einige Flash-Plugin, um benachrichtigt zu werden, frage mich, ob es einen Quellcode gibt .. – Andy

+0

Ah, ja, darüber habe ich nicht nachgedacht. Flash erlaubt persistente Verbindungen, also ist das eine Option. –

+0

Im Ernst, schauen Sie in XMPP und BOSH. – Kinlan

0

Es gibt viele gute Bibliotheken, die Ihnen helfen, diese

XMPP zu tun - BOSH ist eine gute Kombination, die ich auf meiner Web-Site verwenden

XMPP-Server

Ejabberd, Openfire I ejabberd verwenden

Sie können Strophe zusammen mit Ejabberd verwenden, um Benachrichtigungen in JavaScript zu erfassen. Wenn Sie Benachrichtigungen aus dem Code senden möchten

Es gibt Bibliotheken wie JAXL und XMPPHP, mit denen Sie dies tun können, aber das ist in PHP.