Frage von flo34771, 114

Node.js Clienet Location?

Ich habe von Github ein snake game in JS gedownloadet ich möchte dieses nun bei mir einbinden meine seite ist aber komplett php.

kann ich in node.js denn Client auf eine url weiterleiten ( mydomain.xyz/game/fininsh.php?sorce=sorce.. )

ich kann über php dann per get die Variable abfangen.

Würde mir reichen ich weiß das das nicht sicher ist :) ist ja nur ein Spiel

Jemand bessere ideen oder eine antwort?

Antwort
von RakonDark, 2

So wie ich das sehe , verstehst du das node.js kein stück .

der client redet mit dem server und das wohl über ein JSON objekt , wo er einfach nur die aktuellen werte der player an den client sendet .

Jetzt müsstest du beim client finden welcher JSON wert nun sagt, das der Player gestorben ist  und dann könntest du ein head location machen .

fragt sich nur noch ob das wie in meinem beispiel code vom server als response kommen muss, dann müstest du ein request setzen und der server entsprechend ein response head location senden .

Sorry , aber Du musst dich wohl leider erstmal in node.js eindenken , reines kopieren hilft da gar nicht .

Antwort
von RakonDark, 64

vielleicht damit

res.writeHead(301,
{Location: 'http://deinephp.php?get=parameter'}
);

aber dir ist klar , wenn das PHP output gibt , dann ist dein node.js client im urlaub .

Kommentar von flo34771 ,

Hei :)

wenn ich das auf der Server site einbinde kommt ein error und Crash :) So wie schon seit meheren stunden ich bin am verzweifeln ^^ mit JS und node ^^

Kommentar von RakonDark ,

und wie lautet der error ?

kann es sein das du generell da einen fehler hast, den du nun bemerkst ?

Kommentar von flo34771 ,

Die Console Crasht ^^

https://github.com/axelhzf/node-multiplayer-snake

Das is mein
( Geklauter code )
Sorcecode 

Kommentar von kingbongo ,

Läuft Super, innerhalb 2 Minuten installiert auf dem Server nach der Anweisung die dort im Repo steht. Mußte auch erst dieses Node installieren, weil das kannte ich nicht. Bower brauchst du  hier nicht, gibt keine bower.json. Zock jetzt erstmal ne Runde ^^

Kommentar von flo34771 ,

ja aber die verknüpfung fehlt zu php

Kommentar von kingbongo ,

Wieso soll es mit PHP "verknüpft" werden, das ist ein Node Anwendung und keine PHP Anwendung?

Kommentar von RakonDark ,

scheint so als will er kein node.js nutzen , deswegen soll es ja auf dem php weitergehen , also bei ende dann ab zum php

Kommentar von kingbongo ,

Will er bei einem Collide ein HTTP Redirect an eine URL?

Kommentar von RakonDark ,

hab ich aus seinem satz geschlossen

mydomain.xyz/game/fininsh.php?sorce=sorce

Kommentar von RakonDark ,

und wo hast du das wie eingebunden , ich hab das gefühl du bis tso ein copy and paste junkie , darum dann wohl auch die fehler .

Kommentar von flo34771 ,

Welche fehler?

ich würde einfach gerne die node JS variable in php weiterverarbeiten

C & P Junkie ist definitiv das Falsche wort wenn du weißt was das wird ^^

Kommentar von RakonDark ,

Wenn dein head: location ein fehler wirft , und du mir nicht mal sagen kannst welchen fehler , dann gehe ich stark davon aus , das du null ahnung von node.js hast . meint also, du hast dir das zusammen copiert ohne irgendwie node.js zu verstehen .

ich sags mal anders, du bist halt kein programmierer .

Und dein geklauter code, ist das original ,

wir brauchen aber genau das was du hinzugefühgt hast .

erst dann sieht man auch wo der fehler steckt .

Kommentar von RakonDark ,

nutz mal
uglify-js.

um ein syntax check zu machen .

und wer keine ahnung hat aber einfach was hinzufügt, ist ein C&P junky

Antwort
von ceevee, 67

Kannst du den github-Link zu dem Snake-Spiel hier mal reinstellen? Es könnte sein, dass du den clientseitigen Teil rausextrahiert kriegst und den Rest in PHP neuschreiben könntest. Es könnte auch sein, dass es sinnvoller wäre, wenn du dir ein Snake-Spiel in PHP suchst, weil das neuschreiben zu viel Aufwand wäre. Wenn dein Webhoster node.js nicht unterstützt, dann funktioniert das eh nicht.

Kommentar von flo34771 ,

Ich bin mein Eigener Hoster (Kleines Abend Project in beta )( Alphahosting.us)
No Problem zwecks hosting :) eher der Code is das Problem

https://github.com/axelhzf/node-multiplayer-snake

Antwort
von areaDELme, 68
<?php
//php code
?>

<html>
<script src="node.js"></script>

<!-- html code -->
</html>

<?php
//php code
?>

oder:

echo "<script src=\"node.js\"></script>";

// die inneren anfuehrunszeichen müssen escaped werden
// alternativ den echo in einfachem hochkommata
// ohne backslashes verwenden

// in beiden faellen musst du ggf. den
// pfad der datei aendern
Kommentar von flo34771 ,
Node js bietet keine php unterstützung deswegen location ? 

Ich will von einem js Like:

die : function () {
var parts = this.get('parts').slice(0, 1);
this.set('parts', parts);
this.set('score', 0);
//hier soll der user weitergeleitet werden
window location wird nicht unterstützt
},
Kommentar von areaDELme ,

du willst also in js eine weiterleitung auf eine neue url realisieren?
-sobald man tot ist z.b. neu starten-

-> window.document.location.replace("url"); //und ähnliche aufrufe:
document.location.replace... location.replace
-> location.href = 'url'; //+ähnliche: window.document.location.href etc

oder du erstellst z.b. ein html div, dem du mit einer js function z.b. den score übermittelst und dann einfach einen retry-button mit anzeigst, der auf die root-seite zurückverweist (egal ob js oder html).

Kommentar von ceevee ,

Öhm, was node.js ist, weißt du auch schon? Das ist kein Framework, da gibt es keine Datei namens "node.js", die man im Browser per

<script src="node.js"></script>

einbinden könnte. node.js läuft serverseitig und ist eine Alternative zu PHP.

Kommentar von flo34771 ,

Ja das weiß ich danke ^^ Aber ich würde gerne die JS veriablen weitergeben an php und sommit an die ganz normale homepage .
das note script ließt den PHP code aber nicht weil javascript ^^ich will doch nur von javascript weg und wieder zu mydomain.balala/file.php?score=score

(Oder per Post aber ka wie)

Kommentar von RakonDark ,

das Problem ist, das du das ganz falsch machst , du packst das in die Player Object . So geht das aber nicht .

Es muss in einem request die antwort sein , den so arbeitet nun einmal node.js . Wenn Du das einfach via Copy & Paste irgendwo rein packst , dann ist es logisch, das der befehl so gar nicht funktioniert .

player.die() ist jedenfalls keine funktion die irgendwas zurück gibt an den client .

vielleicht kann man das auf die PlayerControll odr im Gameloop Update  legen und da abfragen ob der spieler tot ist  .

Aber wo genau , das ist nun mal deine aufgabe .

Keine passende Antwort gefunden?

Fragen Sie die Community