# Multiplayer Game mit Frontend auf HTML5 - ohne ständigen Client Request  - Möglich?!



## Manuel E. (19. Nov 2012)

Hey Leute!

Ich bin (war) c# und phpler bis jetzt.
Ein neues Projekt für die Uni (mit viel privatem Interesse) 

Nach 2 Wochen suche, ging der Zuschlag jetzt an Java mit dem Play Framework, da ich mich von Microsoft etwas abseilen will.

Nur egal wie lange ich auch suche... eine Frage bleibt beständig, hat eigentlich nicht direkt was mit Java zu tun aber ich versuchs mal hier 

*Wie mach ich regelmäßige Updates ohne ständig requests (zb via Ajax) zu senden!?*
Ich will nicht 1 request pro Sekunde an den Server senden, sondern eher "Push" wenn mein Javacode was neues ausspuckt für den User...

*Nur find ich keine andere Lösung  *

Vielleicht bin ich hier etwas falsch, aber das grundsätzliche Problem hat der ein oder andere bestimmt auch schon gehabt.. wie habt ihr das gelöst? 


Kurze Erklärung:
Frontend wird rein auf HTML5 basieren und soll auf Android/iOs etc über Phonegap laufen.
Da es sich um ein Multiplayergame handelt, habe ich recht viel kommunikation mit dem Server.
Websockets fallen hier leider weg, läuft noch nicht in allen Browsern. SSE ist ne tolle Sache (von HTML5) läuft aber wieder auch nicht überall.

Vielen Dank schonmal!!


----------



## Manuel E. (19. Nov 2012)

PS: JSP oder so fällt wegen Phonegap etc leider weg... reines HTML5 von Clientseite..


----------



## Schandro (19. Nov 2012)

da wegen iOS kein Flash in Frage kommt, dürfte die einzige Möglichkeit long polling (Push technology - Wikipedia, the free encyclopedia) sein


----------



## Noctarius (19. Nov 2012)

Du kannst dir mal Welcome to CometD Project @ The Dojo Foundation | cometd.org bzw https://github.com/Atmosphere/atmosphere anschauen, allerdings muss der Browser auch eine Möglichkeit bieten echtes Push zu unterstützen: Websocket, Spdy


----------



## Manuel E. (19. Nov 2012)

Super werd ich mir mal anschauen!

Das könnte was sein  

Schade das Websockets erst bei den neusten Browsern gehen...


----------



## Noctarius (19. Nov 2012)

Naja Firefox, Opera und Chrome können Websocket und Spdy (letzteres finde ich die bessere Lösung), wer bleibt da noch übrig? Ach ja richtig


----------



## abstractizm (26. Nov 2012)

Nur zur Klarstellung:

Man kann Flash auf iOS als App zum Laufen bringen und das wird auch erfolgreich getan und zwar mit AIR. Desweiteren profitierst Du von Stage3D. Gerade was Performance angeht, wirst Du mit Phonegap nie und nimmer an die Geschwindigkeit von AIR Apps rankommen.

Adobe AIR | Adobe AIR 3 | Applikationen bereitstellen

Liebe Grüße,
abs


----------



## Manuel E. (7. Jan 2013)

Also ich komm nicht drum rum. 
Mach das ganze jetzt per Jsonp.

@abstractizm, air wird aber nie durch kommen, html5 ist dafür die Zukunft ich hab  keine lust noch ne sprache mehr zu lernen.


----------



## Noctarius (7. Jan 2013)

Air ist auch nicht für den Browser gedacht, das wäre dann Flash. Air ist die Desktop Runtime für AS3.

Ps: mit der Einstellung "nicht noch eine lernen" wirst du vermutlich in der Softwareentwicklung nicht viel Spaß haben.


----------



## Bleiglanz (7. Jan 2013)

> Ich will nicht 1 request pro Sekunde an den Server senden, sondern eher "Push" wenn mein Javacode was neues ausspuckt für den User...


Wenn irgendwie möglich, gib es dem Client halt erst dann, wenn er sich das erste mal nach der Neuigkeit wieder beim Server meldet.

Aber du meinst wahrscheinlich, dass du es dem Client "aktiv" von dir aus schicken musst? Ist das ein Chat?

Bei vielen Spielen melden sich die Clients ja eh regelmässig am Server so dass oft kein "echtes" Push benötigt wird.


----------



## abstractizm (7. Jan 2013)

Noctarius hat gesagt.:


> Air ist auch nicht für den Browser gedacht, das wäre dann Flash. Air ist die Desktop Runtime für AS3.



Ja und Nein, es ist viel mehr als das.


----------



## Noctarius (7. Jan 2013)

abstractizm hat gesagt.:


> Ja und Nein, es ist viel mehr als das.



Ja das schon, aber das ist die Kurzfassung


----------



## Kr0e (7. Jan 2013)

Es gibt SOCKET.IO

Ich habe einen Python Webserver mit Pyramid Framework am Laufen und als Frontent HTML 5 + Socket.IO. 


Ganz kurz: Socket.IO ist eine Javascript Library die dir ein Highlevel Netzwerk Interface bietet und versucht, diese Library automatisch mit den besten verfügbaren Technologien zu impl. Soll heißen:
WebSocket Browser sind also mit Websockets implemntiert. Flash browser laufen über integrierte Flash Objekte. Keine Ahnung, wie der Support für Mobile Browser ist, aber würde mich nich wundern, wenn das genauso gut läuft


----------

