Hilfe: Multiplayer-Spiel knallt Server ab

Veränderung

Erfahrenes Mitglied
Hilfe: Multiplayer-Spiel knallt Server ab -> Lösung: AMFPHP

Ich habe ein kleines Karten-Multiplayer-Spiel gespielt, welches ich alleine unter drei Browserfenstern testete (Die SWF war auf dem Rechner, die Daten wurden vom Server abgefragt). Da war es zwar langsam, aber es ging.
Wenn ich jetzt genau die SWF hochlade und andere Spieler mitmachen, geht nach kurzer Zeit bei den meisten gar nichts mehr. Selbst andere Seiten des Webspacepaketes können nicht mehr aufgerufen werden oder laden unbegrenzt lange.

Ich frage alle zwei Sekunden in einem MC das ab:
Code:
loadVariables("http://www.goldspieler.com/poker.php?u=status&z="+random(1000000), _root.MClade_platz);
Und in dem MC MClade_platz rufe ich die Daten mit onClipEvent (data) auf. Vielleicht nicht die schönste Variante, aber doch kein Grund warum der Server nicht mitmachen soll, oder?

Was ich wissen möchte: Wie soll man herausfinden, woran das liegt? In Sache Debugging habe ich im Netz nichts gefunden was mir hilft, die Ursache zu finden.
 
Zuletzt bearbeitet:
Hallo!

Vielleicht nicht die schönste Variante, aber doch kein Grund warum der Server nicht mitmachen soll, oder?

Und ob das ein Grund sein kann, zumal du alle zwei Sekunden mal drei Spieler, d.h. 90 Abfragen in der Minute startest.
Ich an deiner Stelle würde auf keinen Fall mit normalen Abfragen arbeiten, sondern mit einer Technik, die persistente Verbindungen zulässt und, was mich am wichtigsten dünkt, auch pullen kann, d.h. der Server kann Events/Daten an den Client schicken, die dieser ohne Anfrage empfängt. Der Möglichkeiten sind viele. XMLSocket wär wohl am komfortabelsten, dazu brauchst du aber einen entsprechenden Server.
Ich empfehl dir, dich mal in AMFPHP einzulesen. Das ist eine OpenSource-Schnittstelle, die bloss einen PHP-fähigen Webserver benötigt und ziemlich umfangreiche Remote-Möglichkeiten bietet.

gruss
 
Vielen Dank dass du dir die Zeit genommen hast um mein Problem zu verstehen :)
Das Teil wirkt hammerpraktisch, das ist ein Traum wenn auch endlich meine SWFs nicht nur Daten senden, sondern auch wirklich ohne Anfrage was empfangen können.

Die Installation klappte reibungslos.

Kleines Problem
Die Testdatei funktioniert auch, trotzdem erscheint ständig so etwas hier:
trace hat gesagt.:
**Fehler** Szene=Szene 1, Ebene=Ebene 1, Bild=1:Zeile 22: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
pc.responder = new RelayResponder(this, "handleResult", "handleError");

**Fehler** Szene=Szene 1, Ebene=Ebene 1, Bild=1:Zeile 24: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
function handleResult(re:ResultEvent)

**Fehler** Szene=Szene 1, Ebene=Ebene 1, Bild=1:Zeile 29: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
function handleError(fe:FaultEvent)

Auch wenn es im Endeffekt geht, was soll das?

Große Frage
So, also nach der Begutachtung des HelloWorld-Files und dem Versuch die englischen ersten drei Videos zu diesem Thema zu interpretieren fand ich zwar keine deutschen Tutorials, dafür aber in mir folgende Erkenntnis:
Ich kann Funktionen aus PHP in Flash so integrieren, dass auch Datenbankzugriffe mit 'übernommen' werden, bzw. ich exakt die gleiche Funktion ebend im AS nutzen kann.
Aber in welchem Teil des AMFPHP Manuals steht was vom Senden von PHP zur SWF ohne vorige Abfrage der SWF?
Im Moment habe ich Standardausgaben wie "&neues=0&status=runde", die Flash nur erhalten soll wenn die php-Datei es möchte. Unter welchem Kapitel muss ich da nachschlagen? Stimmt die Logik?
 
Hallo,

Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
Dein Code liegt auf einem MovieClip drauf, muss sich aber in dieser Form auf einem Keyframe befinden, um zu funktionieren.

Aber in welchem Teil des AMFPHP Manuals steht was vom Senden von PHP zur SWF ohne vorige Abfrage der SWF?
Da hast du mich wohl falsch verstanden, ich wollte nicht implizieren, dass die AMFPHP-Engine das beherrscht, das tut sie meines Wissens nämlich nicht. Du kommst also um eine regelmässige Abfrage nicht herum.
Vielleicht kannst du jedoch die Art der Abfrage ein wenig umgestalten, z.B. nicht jedesmal die ganzen Spieldaten abfragen, sondern bloss, ob eine Statusänderung stattgefunden hat und in diesem Falle dann die "grosse" Abfrage starten. Auch würd ich den Zeitabstand zwischen den Abfragen ein klein wenig erhöhen.

Im Moment habe ich Standardausgaben wie "&neues=0&status=runde", die Flash nur erhalten soll wenn die php-Datei es möchte.
Ob und wie Flash was erhalten soll, entscheidest du nach wie vor als Reaktion auf eine Abfrage. Der Datentransfer gestaltet sich jedoch extrem viel unkomplizierter, da du Variablentypen wie x-dimensionale Arrays, Objekte usw in dieser Form direkt und ohne XML-Schnittstelle oder GET-Strings oder derlei Unkraut hin- und hersenden kannst.

gruss
 
AMFPHP benutze ich dann nächstes Mal, das ist gut zu wissen dass es sparender ist.
Nun habe ich alle 5 Sekunden eine Abfrage, die nur Daten empfängt wenn sie neue hat, das Script rechnet aber nach wie vor genau so viel. Das werde ich auch noch ändern. Chat ist nun sogar aus. Bisher aber stürtzt's trotzdem ab.
Was ist die Sache die man am meisten einschränken sollte? PHP-Script-Laufzeit? Menge der Daten die Flash verarbeiten muss? DB-Querys?
Wie kann man in einem primitivem Webspace-Paket die Ursachen durch Leistungsmessungen herausfinden (Datenbankauslastung, Scriptauslastung usw.)?
 
Hallo!

Wie kann man in einem primitivem Webspace-Paket die Ursachen durch Leistungsmessungen herausfinden (Datenbankauslastung, Scriptauslastung usw.)?
Da bin ich überfragt, vielleicht weiss man hier mehr dazu.

Meines Wissens sind blosse Skript-Aufrufe nicht sehr leistungsaufwendig, wobei auch das wider von der zu verarbeitenden Datenmenge abhängt. Ich denke aber, dass die DB-Querys die meiste Performance brauchen. Bist du dir denn sicher, dass dein Problem serverseitiger Natur ist?

gruss
 
Guten Morgen,

welche Ursache soll es sonst haben, meinst du man sollte schauen ob z.B. die swf nicht hängt? Ich dachte an einen serverseitiges Problem weil die ganze Seite auf dem Webspacepaket dann hängt.
Wer will kann sich durch eine Betrachtung und Optimierung meines mit guten Anfängerkenntnissen gestalteten Spieles etwas verdienen (ja, das Forum Jobangebote kenne ich :)), PN reicht.

Ich denke darüber nach ob es damit zusammenhängt dass ich extra ein Movieclip laufen habe welches die Daten an sich selbst schickt (woe oben beschrieben), vielleicht ist das unschön gelöst. Mal schauen.

Gruß und danke
 
Zurück