2009-08-19 10 views
1

Ich bin neu in Flash. Ich plane, einen Spielclient in Flash zu erstellen (der im Browser läuft), der mit einem Server kommunizieren muss, der in Java geschrieben ist. Die Verbindung zwischen Client und Server muss persistent sein.Persistente Verbindungen zwischen Flash-Client und Java-Server

Ich kenne XMLSocket - ist das der einzige Weg zu gehen? Irgendwelche Empfehlungen?

Danke!

Antwort

1

Es gibt eine Socket Klasse, mit der Sie echtes TCP verwenden können, wenn Sie mit einem Server sprechen. Downside - Sie müssen das Protokoll selbst implementieren (das Implementieren HTTP-Client in den meisten Fällen. Vielleicht jemand bereits getan hat)

+0

Von was ich verstehe, ist Socket-Klasse in AS3, die Flash Player 9 und höher ist verfügbar - jede Idee, wie groß ist das Marktsegment, dass etwas in AS3 geschriebene verwenden können? – byteclub

+0

Beantworten Sie meinen eigenen Kommentar hier, sorry: sah die Statistiken auf adobe.com, sieht aus wie Flash Player 9 ist ziemlich allgegenwärtig, bis zu 98,8% der Installationen verwenden es. – byteclub

+0

Ja, gehen Sie für as3 - es sei denn, Ihre einzige Programmiererfahrung war bisher JavaScript as2 ist nicht wirklich Spaß für einen Programmierer und die Werkzeuge für as3 sind viel besser. (Flash-Designer könnten das Gegenteil behaupten) –

0

Sie werden nur das Spiel für das Lehnen und Spaß erstellen? Ansonsten würde ich empfehlen, einen vorhandenen Spieleserver zu verwenden oder zumindest die Vor- und Nachteile dieser Option zu untersuchen.

Ich habe SmartfoxServer() in ein paar Projekten verwendet, es ist nicht perfekt, aber es nimmt eine Menge Ihrer Probleme weg (und Sie können Erweiterungen in Java schreiben, wenn Sie möchten). Ich glaube Electro http://www.electro-server.com/ ähnlich ist, und Sie können auch einen Blick auf die Open-Source-Server Red5 http://osflash.org/red5

haben Neben Sachen in xml Senden Sie auch untersuchen können, wenn Sie AMF verwenden können, um Daten zu senden, es könnte kleiner sein (wie in weniger Bits).

+0

Es ist ein Port eines bestehenden iPhone Multiplayer-Spiels. Server sind schon da.Nur versuchen, herauszufinden, ob wir ein anderes Frontend für eine Flash-Implementierung benötigen, oder ist es möglich, das vorhandene Protokoll einfach neu zu implementieren und wiederzuverwenden (was Zeit sparen könnte) – byteclub

+0

Sockets im Flash sind knifflig (vor allem die Erkennung von Fehlern), xmlsocket ist wahrscheinlich die beste Option. Achten Sie auf Personen, die hinter restriktiven Firewalls stehen. Möglicherweise benötigen Sie einen Abruf-HTTP-Fallback, wenn Sie sie ebenfalls unterstützen möchten. –

0

Stellen Sie sicher, dass eine Sicherheitsrichtliniendatei auf dem Server verfügbar ist. Schauen Sie sich SO question/answer für weitere Informationen an.

0

Ich habe mit Socket-Kommunikation zwischen Flash und Java experimentiert. Ein Vorteil von Socket over XMLSocket ist die Bandbreite, da Sie Binärdaten schreiben können. So können Sie zum Beispiel die Position einer einzelnen Entität wie folgt senden:

Das sind nur 10 Bytes.

Java unterstützt ähnliche primitive Lese-/Schreibfunktionen mit entweder DataStreams oder ByteBuffers.

Eigentlich ist die Server-Seite der Dinge komplizierter als die Flash-Seite, weil Sie zwischen den alten io-Java-Sockets und den neuen io-Methoden wählen müssen. Die neuen io-Methoden haben eine viel bessere Leistung, sind aber komplizierter und scheinbar mit Fehlern behaftet.

Verwandte Themen