php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
Alt 25.06.2011, 22:25  
Benutzer
 
Registriert seit: 24.09.2009
Beiträge: 95
PHP-Kenntnisse:
Anfänger
Dopar zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Server kontaktiert Client

Hallo Leute,

folgendes kleines Problem wo ich von euch vielleicht kurz ein paar Tipps oder gute Google Schlagwörter / Tutorial Links brauchen könnte:


Ich habe einen FlashClienten auf Adobe Air(2.6) der beim Starten einen Request an das PHP Script auf meinem Server schickt und sich somit "am Server anmeldet". Der Server weiß nun wie viele bzw. welche Clients am System angemeldet sind und soll entsprechend von Informationen die er in unregelmäßigen Abständen erhält einige Daten an einen der angemeldeten Clients schicken.

Ich hatte darüber nachgedacht das der Client einfach in regelmäßigen Abständen am Server fragt ob neue Informationen bereit stehen. Das Problem ist das mir das auf Dauer zu viel Traffic verursacht. Es kann öfter vorkommen das am Tag nur 1 oder 2 mal Daten zur Verfügung stehen und wenn ich das dann alle 10 Sekunden abfrage ist das sinnlose Auslastung.

Die Abstände vergrößern kann ich leider auch nicht, weil wenn neue Daten zur Verfügung stehen diese mit einer maximalen Verzögerung von 10 Sekunden beim Client angekommen sein sollten.

Kann mir jemand Ideen geben wie man so einen Aufruf vom Server aus an den FlashClient steuert?

Den Rest hab ich soweit hin bekommen.

Danke im vorraus.
Dopar ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.06.2011, 22:35  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

also bei ~10 Byte responses wäre das pro user pro monat 2,5 Megabyte "antwort"-traffic vom Server, wenn man davon ausginge das der Server bei dem User 24 h / 7 Tage die Woche / 365 Tage im Jahr antworten muss, was wohl nie zutreffen wird.. Ich schätze du hast dich etwas bei deiner "zu hoher Traffic"-Berechnung verkalkuliert, oder du hast soviel User das du mehrere Petabyte Traffik damit erzeugen würdest..

Missversteh mich nicht, du musst nur zurückgeben ob neue nachrichten da oder nicht, keine Lebensgeschichte, die kann dann "erneut" requested werden, wenn sie denn was neues wär'. Du bräuchtest vermutlich nur nen Timestamp durch die "Welt" antworten..

Vielleicht erläuterst du ja was dein Client genau macht, damit man in etwa abwegen kann, welche Response / Request Mechnik bei dir ratsam wär'.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 25.06.2011, 22:49  
Benutzer
 
Registriert seit: 24.09.2009
Beiträge: 95
PHP-Kenntnisse:
Anfänger
Dopar zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Okey ich geb' zu so mathematisch bin ich da nicht ran gegangen.


Es geht darum das das System bei einem Kunden laufen soll der immer "sofort" die Nachricht im Air Clienten haben möchte sobald er nen neuen Comment in seinem Ticket System bekommt. Das kann - wie gesagt - 5 mal pro Stunde sein, kann aber auch nur nur 2 mal pro Woche sein.

Bei jedem dieser Requests wird nur eine Anfrage an das PHP Script gegeben dem ca. 2 - 5 Parameter übermittelt werden und das Script gibt eine ganz simple Antwort - vermutlich in Form eines JSON Arrays die zurück geschickt werden muss.

Sollte die Anfrage "positiv" ausfallen, das heißt, dass ein neuer Eintrag vorhanden ist könnte die Menge der Daten doch durchaus erhöht werden, da die Comments durchaus umfang reich sind und u.U. mit Attachments verbunden sind.

Je nach dem wie erfolgreich das System ist soll der Client später noch um einen ChatClient erweitert werden, wo dann nichtmal die 10 Sekunden ausreichen würden. Daher war ich am Überlegen gleich auf eine Server to Client Beziehung um zu stellen.
Dopar ist offline   Mit Zitat antworten
Alt 25.06.2011, 22:53  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Du bräuchtest vermutlich nur nen Timestamp durch die "Welt" antworten..
Conditional GET mit If-Modified-Since, Server mit 304 Not Modified antworten lassen, wenn's nix neues gibt, fertig.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 25.06.2011, 23:57  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

@ChrisB: Jo sowas der art.

@Dopar: Trotz dem Chat, wird es nicht viel Traffic beanspruchen Zustands-Requests durchzuführen. Die schlussendlich auch der Chat nutzen kann um "neue Chatlines" abzufragen. ( Wobei ich bei chats auch bei medium systemen eher auf existierende deamon-technologie die in jede dimension skallierbar ist - IRCd - zurückgreifen würde )
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 26.06.2011, 14:16  
Erfahrener Benutzer
 
Registriert seit: 13.05.2011
Beiträge: 188
PHP-Kenntnisse:
Fortgeschritten
php1704 wird schon bald berühmt werden
Standard

Also mit 10 Bytes pro Requests ist es ja bei weitem nicht getan. Selbst wenn eine "leere" Antwort kommt.

Wenn du eine HTTP-Anfrage schickst kommen da (inkl. Antwort) schonmal locker 200 Byte nur an Header-Daten zusammen.

Sowas kannst du mit TCP-Sockets machen.
Von Flash aus kannst du ja mit Sockets arbeiten.
Auf Serverseite brauchst du dann ein Server-Programm/Skript, dass die Verbindungen der Clients entgegen nimmt und ihnen dann die Daten zukommen lässt.

Google mal nach:
server push
tcp socket server

Grüße.
php1704 ist offline   Mit Zitat antworten
Alt 26.06.2011, 14:24  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

selbst 200 bytes sind nix..
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 26.06.2011, 14:33  
Erfahrener Benutzer
 
Registriert seit: 13.05.2011
Beiträge: 188
PHP-Kenntnisse:
Fortgeschritten
php1704 wird schon bald berühmt werden
Standard

Auch Kleinvieh macht Mist

Grüße.
php1704 ist offline   Mit Zitat antworten
Alt 26.06.2011, 21:59  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Wozu soviel Arbeit? Aktives Polling, einfach ein Button oder Link mit "jetzt nach neuen Daten suchen", klicken, checken, fertig. Wenn ich es richtig verstanden habe, ist es kein Chat, und bei Intervallen von 2 mal pro Woche (im schlechtesten Fall) ist jedes regelmässige Polling überdimensioniert.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 27.06.2011, 04:33  
Erfahrener Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 173
PHP-Kenntnisse:
Anfänger
Griffith sorgt für eine eindrucksvolle AtmosphäreGriffith sorgt für eine eindrucksvolle Atmosphäre
Standard

Auch der Verbindungsaufbau über TCP braucht Traffic und Zeit,
und das selbst bei ner Payload von 0 Bytes.

Ist halt die Frage welcher Traffic genau berechnet wird:
Ethernet? TCP Payload? HTTP Payload?

Das Hauptproblem ist eigtl auch, dass der Server von außen aus keine TCP-Verbindung zum Client herstellen kann, wenn der Client hinter einem NAT hockt.
Über NAT kann eine Verbindung nur hergestellt werden, wenn der Client sie initiert.
Der Client muss also immer regelmäßig eine Verbindung eröffnen und/oder möglichst lange offen halten.

Wenn die Verbindung einmal offen ist, kann man die Verbindung offen halten und auf eine Antwort vom Server warten.
Nennt sich dann Long Polling.

Long Polling ist verglichen mit "normalen" Polling sinnvoller, weil...
1. Traffic-schonender (TCP-Payload bleibt bei 0; Overhead für die TCP-Payload ist natürlich weiterhin vorhanden: Ethernet und TCP/IP-Header)
2. Kürzere Antwortzeiten, da die Verbindung bereits aufgebaut wurde und die Antwort vom Server praktisch direkt kommt, ohne dass man nen 10 Sekunden Intervall hat.

http://en.wikipedia.org/wiki/Push_te...y#Long_polling

Geändert von Griffith (27.06.2011 um 05:00 Uhr).
Griffith 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
Biete Webspace mit Domain auf schnellem Server zu Duping-Preis an! 75MrCoolBoy Off-Topic Diskussionen 9 07.02.2010 22:16
Anwendung für mehrere Server entwickeln smilla Software-Design 14 30.12.2009 00:05
[Erledigt] Bilder vom Client ohne post auf Server speichern Psydl PHP-Fortgeschrittene 15 02.07.2009 15:52
exec() auf win 2003 Server geqoo PHP-Fortgeschrittene 9 30.04.2009 21:57
[Erledigt] WAMP unter Windows 2000 Server oder Windows 2003 Server Mecronomecon Server, Hosting und Workstations 3 18.06.2008 09:15
Datei von Server zu Server übertragen GSJLink PHP-Fortgeschrittene 5 05.05.2008 14:17
[Erledigt] Server durchsuchen mit php PHP Tipps 2008 7 18.08.2007 12:24
Server für shell_exec() / exec() vorbereiten Martek Server, Hosting und Workstations 2 16.03.2007 15:03
streaming von videos, server lahmt bereits nach einem abruf snowflow Server, Hosting und Workstations 6 30.11.2006 18:04
Client IP bei include über anderen Server PHP Tipps 2006 5 14.03.2006 14:55
[Erledigt] verschiedene Versionen auf einem W2K3 Server betreiben PHP Tipps 2006 2 13.01.2006 17:39
Problem mit Verbindung von anderem Server Datenbanken 2 08.11.2005 13:43
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] dateiupload - windows client - suse server Server, Hosting und Workstations 2 16.12.2004 21:34
Datei nach Transfer löschen? (Server -> Client) PHP Tipps 2004-2 1 14.12.2004 20:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php server an client senden, php webserver client, php tcp socket example, php server to client, php server fragt client, php bild von server auf client, server wird kontaktiert, php server-client

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:58 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