Zu allererst Polling ist der Weg zu gehen. Sie können es mit Flash oder Silverlight oder Comet tun - http://en.wikipedia.org/wiki/Comet_(programming), die eine TCP-Verbindung offen für Sie für Benachrichtigungen halten kann.
Eine Webseite selbst kann keinen Socket offen halten, daher gibt es keine Möglichkeit, einen Web-Client direkt zu benachrichtigen.
[Bearbeiten]
Aber denken Sie daran, wie viele Client kann gleichzeitig eine TCP-Verbindung zu einem Server halten? Bei einem größeren System sind die verfügbaren Sockets ziemlich schnell erschöpft, da 65k-Ports verfügbar sind.
Wie viele gleichzeitige Verbindungen Ihr Server verarbeiten kann, hängt von Ihren Hardwareressourcen ab. Wenn Sie genug Speicher und CPU haben, sollten Sie in der Lage sein, ~ 100k und vielleicht mehr zu handhaben. Wenn jedoch jede Anfrage über tcp/ip auf eine Datenbank oder eine andere Ressource zugreift, kann die Anzahl der verfügbaren Ports pro IP (65k) begrenzt sein. Sie sollten die Push-Anforderungen auch gegen eine separate Domäne richten, da ein Browser normalerweise zwei gleichzeitige Verbindungen pro Domäne festlegt, sodass Sie das normale Laden der Seite nicht beeinträchtigen.
Polling in Kombination mit Cache-Servern in der Front ist eine gute Lösung. Sie können Logik auf dem Server haben, der den Cache pro Client aktualisiert, wodurch die Belastung für jede Abfrage reduziert wird. Sie können den Cache für Benutzer aktualisieren, die sich innerhalb der X-Minutenanzahl angemeldet/abgefragt haben, um die Aktualisierung des Caches noch weiter zu reduzieren. Und für mich ist das Implementieren von Pull einfacher als das Ziehen, technologisch.
Ja, es kann ohne Flash und Silverlight gemacht werden; Siehe die Antworten zu http://en.wikipedia.org/wiki/Comet_%28programming%29 –
@Marcel: danke .. meine Antwort bearbeitet, um das zu reflektieren. –
Große Antwort, das gab mir einige gute Plätze, um zu suchen. – Achilles