Frage

ich einige Fälle vor kurzem festgestellt, wo ein Server einen Ereignisstrom verteilen würde, die exakt die gleichen Daten für alle Zuhörer, wie eine ‚aktuellen Aktivitäten‘ -Box enthält.

Es fiel mir ein, dass es ziemlich merkwürdig ist und ineffizient, einen Server zu haben wie Apache eine Thread-Verarbeitung und Abfrage der Datenbank für jeden einzelnen Kometen Strom, der die gleichen Daten ausgeführt werden.

Was würde ich für die tun global (nicht pro Benutzer) Ströme ist ein einzelner Thread ausgeführt werden, dass kontinuierlich Daten sendet, und ein neues (grün) Gewinde für jede neue Anforderung, dass die Ergebnisse die Header und dann ‚verschmilzt‘ in den Haupt-Thread .

Ist es möglich, dass ein Thread mehrere Sockets zu dienen, oder für mehrere Clients auf die gleiche Buchse zu hören?

Ein Beispiel

o = Ereignis

       # threads received
|  a b # 3
o / /  # 3       -
|/_/
|      # 1
o  c   # 2       a, b
| /
o/     # 2       a, b
o      # 1       a, b, c
|      #                    connection b closed
o      # 1       a, c

Hat so etwas wie dieser exist? Würde es funktionieren? Ist es möglich, zu tun?

Disclaimer: Ich bin kein Experte Server

.
War es hilfreich?

Lösung

Überprüfen Sie heraus node.js - Single-Threaded, ereignisgesteuerte Server. Verwendet JavaScript als Bonus.

Andere Tipps

Wenn Sie ASP.NET verwenden, ist der folgende Beitrag soll nützlich sein

http://beta.codeproject.com/KB/aspnet/CometAsync.aspx

Durch die Art und Weise ist es möglich, Comet zu implementieren mehr dienen als ein Client pro Thread, aber nur ein Thread für alle Client scheint nicht genug?

Sie sprechen von „asynchronen Web-Anfragen“ angewandt Comet, einige wie „asynchroner Comet“.

Meiner Meinung nach diesem Ansatz, so beliebt in diesen Tagen, ist zutiefst fehlerhaft .

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