php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.04.2010, 15:06  
Benutzer
 
Registriert seit: 04.01.2009
Beiträge: 43
Deltachaos befindet sich auf einem aufstrebenden Ast
Standard PHP Sockets - Viele Clients handeln

Hi,

Ich möchte mit AJAX für eine Chat Software eine Echtzeitkommunikation zwischen Server und Client herstellen.

Deshalb dachte ich mit PHP einen Server zu bauen der die HTTP Verbindung zum Client offen hält und ich zu den offenen Verbindungen der Clients Nachrichten sende.
Soweit kein Problem nur....

Wie handle ich am Besten viele Clients?
Ich hatte die Idee das ich die Clients auf verschiedene Serverprozesse verteile.
Also nach dem Motto wen Zugriff auf 0.realtime.example.com dann Serverprozess 0 usw.

Nur ein Problem.. Wie löse ich es am Performantesten wen z.B. ein Client auf Server 0 eine Nachricht an einen Client auf Server 1 Senden möchte.

abc_server0 > 0.xyz.example.com (Nachricht wird verarbeitet. Antwort gesendet) //An diesem Punkt muss die Nachricht ja an z.B. Server 1 weitergeleitet werden das dieser die Nachricht an dem gewünschten Client ausliefern kann.
1.xyz.example.com > maxi_server1

Wenn ich jetzt aber die Kommunikation zwischen den Servern auch mit Sockets regle, habe ich dann hätte ich doch gleich alles ein Script machen lassen können oder?

Oder ich setze einen Kommunikationsserver ein also:

Code:
Cleint_auf_Server1 > Server1 (Verarbeitung) > Kommunikationsserver > Server2 > Client_auf_Server2
Cleint_auf_Server1 < Antwort

Was sagt ihr? Wie soll ich das am Besten Lösen? Oder gibt es schon fertige Sachen die ich nutzen kann?
Deltachaos ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.04.2010, 15:11  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Versteh kein Wort. Bin schon hier ausgestiegen
Zitat:
Deshalb dachte ich mit PHP einen Server zu bauen der die HTTP Verbindung zum Client offen hält und ich zu den offenen Verbindungen der Clients Nachrichten sende.
Soweit kein Problem nur....
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 28.04.2010, 15:18  
Benutzer
 
Registriert seit: 04.01.2009
Beiträge: 43
Deltachaos befindet sich auf einem aufstrebenden Ast
Standard

Ich baue eine Serversoftware mit PHP die auf z.B. Port 81 hört und die Grundlagen des HTTP Protokoll kann.

Und dann rufe ich von der Client Seite per AJAX eine angeblich vorhandene Seite auf. Der Server nimmt das entgegen liefert aber nichts aus!! er hält die Verbindung offen. Sobald neue Nachrichten vorhanden sind werden sie an den Client gesendet... Die Verbindung wird eine gewisse Zeit offen gehalten und nach Abbruch durch den Server wieder neu Aufgebaut.

So kann ich in fast Echtzeit Nachrichten versenden.
Deltachaos ist offline   Mit Zitat antworten
Alt 28.04.2010, 15:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
er hält die Verbindung offen.
Das hast DU schon mal gesagt. Aber nicht, wie das gehen soll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 28.04.2010, 15:23  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Let me google that for you

Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 28.04.2010, 15:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Du meinst jetzt nicht mich, oder? Es geht hier um einen Server Push, nicht um Ajax-Polling. Aber er redet wohl von Server-Push, nicht von http://en.wikipedia.org/wiki/Comet_(programming) o.ä.

Zitat:
die Grundlagen des HTTP Protokoll kann
HTTP ist aber Request-Response-basiert. Ein Client (ausser ein Javaapplet o.ä.) kann aber keine Serverfunktion übernehmen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 28.04.2010, 15:49  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.838
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Ne, dich meinte ich nicht. Jep, hab ich falsch verstanden, aber war mir auch nicht ganz klar, was er genau wollte!

Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 28.04.2010, 16:48  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Aber er redet wohl von Server-Push, nicht von http://en.wikipedia.org/wiki/Comet_(programming) o.ä.
Ich zitiere mal den von dir verlinkten Artikel:
Zitat:
The concept predates the coining of the neologism, and is known by several other names, including Ajax Push, Reverse Ajax, Two-way-web, HTTP Streaming, and HTTP server push among others.
Zitat:
Zitat von nikosch Beitrag anzeigen
HTTP ist aber Request-Response-basiert.
RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
Letzter Satz in Abschnitt 8.1.1, zusätzlich definiert Abschnitt 14.10 ein "Connection: close" um eine offen gehaltene Verbindung explizit zu schließen bzw. das Schließen zu signalisieren.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Alt 28.04.2010, 16:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
The use of inline images and
other associated data often require a client to make multiple
requests
of the same server in a short amount of time.
Und auch der Rest reden nicht von Serverseitigem Push, sondern beziehen sich immer auf Abfrage-Antwort, auch wenn Client hier mehrere Abfragen senden darf o.ä.

Aber wie auch immer, Du meinst halt Long Polling oder was auch immer. Stellt sich als nächste Frage, wozu Du Prozesse benutzen willst.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 28.04.2010, 17:02  
Benutzer
 
Registriert seit: 04.01.2009
Beiträge: 43
Deltachaos befindet sich auf einem aufstrebenden Ast
Standard

Ja es geht um Long Pooling.

Da ich denke das ein PHP Script das als Server arbeitet nicht sehr viele Clients abfertigen kann.
Deltachaos ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Kommunikation zwischen Clients nicktight PHP-Fortgeschrittene 13 11.04.2010 16:51
php5 & sockets fre@ky PHP-Fortgeschrittene 16 25.08.2008 11:41
Arbeiten mit Sockets vollkommenegal PHP-Fortgeschrittene 20 29.11.2007 11:00
Geschwindigkeit von Sockets Sascha Bahl PHP-Fortgeschrittene 17 05.03.2007 21:39
Location des Clients fmueller PHP Tipps 2006 9 05.03.2006 01:09
PHP, Sockets AND Server/Client PHP Tipps 2006 3 13.01.2006 17:44
PHP Scrip.t nur von bestimmten Clients aufrufen dh1sbg PHP-Fortgeschrittene 6 09.01.2006 16:56
eine tabelle - mehrere clients Datenbanken 2 31.08.2005 11:27
Von Server auf die Platte des Clients zugreifen PHP Tipps 2005-2 6 21.08.2005 15:56
Verständnisfragen zu persistenten und blockenden Sockets HStev PHP-Fortgeschrittene 0 19.08.2005 11:37
Php Sockets Tutorial [codewalkers.com] endet in Timeout Cmon PHP Tipps 2005-2 2 02.08.2005 20:57
Erkennung der Systemsprache des Clients PHP Tipps 2004-2 4 14.12.2004 21:03
[Erledigt] Sockets Server, Hosting und Workstations 3 08.09.2004 16:38
Den Gerätemanager des Clients auslesen PHP-Fortgeschrittene 4 16.07.2004 11:01
Sockets unter PHP PHP Tipps 2004 1 08.07.2004 16:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sockets, http://www.php.de/software-design/67399-php-sockets-viele-clients-handeln.html, php socket server, ajax long polling, php socket, php socket programming, php server an client senden, viele clients händeln, php socket push, php socket chat, php socket example, php verschiedene clients, php socket simple push example, php server push sockets, php durch sockets nachrichten senden, php socket client chat, kommunikation zwischen applet und php server pushing, socket php push, php sockets push, echtzeit php

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum