network_connect_raw <-> php server ?

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • network_connect_raw <-> php server ?

    Hi,

    der Game Maker kann ja auch zu einem Server (nicht GM) eine Verbindung herstellen.
    Hat jemand von euch schon einmal damit Erfahrung gesammelt?

    Ich habe einen Server (Webspace) mit einer PHP-Website. Könnte ich mein Game damit verbinden?
    Wie würde meine Website mit dem Game kommunizieren?

    Vielleicht würde das ganze auch nur mit Java funktionieren.
  • Du kannst mit PHP eigentlich nur auf eine Art und Weise kommunizieren, wenn du nur eine Webspace zur Verfügung hast: über das Hypertext Transfer Protocol (HTTP). Im Prinzip heißt das, du tust mit deinem Spiel so, als sei ein es Webbrowser. Dafür kannst du dich direkt mit dem Server verbinden und alles und selbst implementieren (siehe RFC 2616), oder du schaust dich nach einer HTTP-Dll/Erweiterung für den Game Maker um. Hier findest du das Ergebnis einer kurzen Googlesuche, es gibt da draußen aber noch andere alternative DLLs.
  • Thx, aber mein Game ist eher ne App für iOS. Also kann ich DLLs schonmal vergessen. YoYo Games möchte es ja bald ermöglichen auch für Mobile Plattformen wie iOS Erweitungen zu verwenden.
    Momentan baue ich mir einen kleinen Server mit PHP auf, womit ich dann mit dem Game über http_get() kommunizieren kann. Das klappt eigentlich sehr gut. Kann sogar Daten hin und her schieben. etc.
    Doch die feine Art ist es halt nicht. Zum Beispiel kannst du so niemals ein User Login erstellen. Da alles in Klartext übertragen wird bzw. leicht abgefangen werden kann. Und selbst wenns verschlüsselt wäre könnte ein 3 jähriger unheil anrichten.
    Für meine Anwendung wirds aber sicherlich auch so funktionieren. Im Prinzip erlaube ich jeden Zugriff. Natürlich wird es einen automatischen Türsteher geben.


    Ich frage mich wie das normalerweise läuft.
    Viele Apps haben doch bereits solche Funktionen. (Online auf Daten zugreifen).
  • boxxar schrieb:

    Du kannst mit PHP eigentlich nur auf eine Art und Weise kommunizieren, wenn du nur eine Webspace zur Verfügung hast: über das Hypertext Transfer Protocol (HTTP).


    Das ist nicht wahr. PHP unterstützt auch Sockets die auch mit GM:Studio verwendet werden können.
    Allerdings sind diese viel langsamer als z. B. node.js (was ich bestens empfehlen kann) oder womöglich sogar als ein mit GM:Studio erstellten Server.

    Wenn du das aber mit PHP machen möchtest, ist das gar kein Problem. Wenn du SSH-Zugriff auf einen Server hast, kannst du das Skript in der Konsole mit php filename.php ausführen. In Kombination mit screen könnte das Script im Hintergrund weiterlaufen - solange das Script läuft, läuft auch der Server.

    Hast du lediglich Webspace, der PHP unterstützt, muss das PHP-Script in einem Browser geöffnet sein, damit der Server funktioniert.
    Je nach Serverkonfiguration ist es mit ob_implicit_flush() möglich, während der Laufzeit von PHP Ausgaben zu machen, um zB einen Log anzuzeigen. Hier sollte womöglich Timeout bzw. max_execution_time hochgesetzt werden, nicht das nach 30 Sekunden der Server beendet wird.

    Weitere Informationen: php.net
    :thumbsup:
  • jlsnews schrieb:

    boxxar schrieb:

    Du kannst mit PHP eigentlich nur auf eine Art und Weise kommunizieren, wenn du nur eine Webspace zur Verfügung hast: über das Hypertext Transfer Protocol (HTTP).


    Das ist nicht wahr. PHP unterstützt auch Sockets die auch mit GM:Studio verwendet werden können.
    PHP kann in der Tat Server mit Sockets betreiben, ja, aber die sind nur für den CLI-Modus von PHP sinnvoll, d.h. wenn du das PHP Script ohne Laufzeitbeschränkung außerhalb eines HTTP-Servers laufen lässt. Ich hab das schon absichtlich mit "wenn du nur eine Webspace zur Verfügung hast" eingeschränkt. Wenn du PHP im CLI-Modus benutzt kannst du damit Prinzipiell alles Programmieren was mit anderen Scriptsprachen auch ginge, aber das ist ja völlig irrelevant wenn man nur eine Webspace hat.