server-driven events generieren und auswerten
Verfasst: Montag 11. Mai 2009, 23:58
Hallo,
meine Frage hat erst einmal nicht sonderlich viel mit Python zu tun...
Ich habe ein Spiel geschrieben (in Python ), welches rundenbasiert abläuft. Momentan habe ich einen menschlichen und diverse Computerspieler. Der menschliche Spieler gibt seine Züge momentan per Tastatur ein. Nun möchte ich dies gerne in eine nette Browser-GUI gießen und bin schon bei meinen Vorüberlegungen auf Probleme gestoßen.
Nachdem der menschl. Spieler seinen Zug gemacht hat, spielen erst einmal die Computergegner. Dies soll natürlich im Browser angezeigt werden. Ich würde dies per Ajax machen, aber das m.E. ist Ajax client-driven, d.h. der request muss vom Browser ausgehen. Das Ereignis (Computergegner macht Zug) würde aber vom Server generiert werden und müsste einen Eventhandler im Browser triggern.
Polling möchte ich erst einmal vermeiden, aber welche Alternativen hätte ich? Den Ajax-Request einfach offen halten bis ein Event ansteht finde ich auch eher ungeschickt (ist eigentlich auch polling)... Ich habe etwas über JSON-RPC gelesen, welches über sockets anstatt HTTP läuft (die Quellen waren ein wenig mehrdeutig, also weiß ich nicht so recht ob sich damit server-driven events behandeln lassen). Könnte dies auf dem Browser laufen?
Vielleicht hat ja jemand eine elegante Lösung oder kennt ein paar Stichwörter zum googeln...
Lg,
lunas
meine Frage hat erst einmal nicht sonderlich viel mit Python zu tun...
Ich habe ein Spiel geschrieben (in Python ), welches rundenbasiert abläuft. Momentan habe ich einen menschlichen und diverse Computerspieler. Der menschliche Spieler gibt seine Züge momentan per Tastatur ein. Nun möchte ich dies gerne in eine nette Browser-GUI gießen und bin schon bei meinen Vorüberlegungen auf Probleme gestoßen.
Nachdem der menschl. Spieler seinen Zug gemacht hat, spielen erst einmal die Computergegner. Dies soll natürlich im Browser angezeigt werden. Ich würde dies per Ajax machen, aber das m.E. ist Ajax client-driven, d.h. der request muss vom Browser ausgehen. Das Ereignis (Computergegner macht Zug) würde aber vom Server generiert werden und müsste einen Eventhandler im Browser triggern.
Polling möchte ich erst einmal vermeiden, aber welche Alternativen hätte ich? Den Ajax-Request einfach offen halten bis ein Event ansteht finde ich auch eher ungeschickt (ist eigentlich auch polling)... Ich habe etwas über JSON-RPC gelesen, welches über sockets anstatt HTTP läuft (die Quellen waren ein wenig mehrdeutig, also weiß ich nicht so recht ob sich damit server-driven events behandeln lassen). Könnte dies auf dem Browser laufen?
Vielleicht hat ja jemand eine elegante Lösung oder kennt ein paar Stichwörter zum googeln...
Lg,
lunas