2012-03-25 20 views
0

Ich mache ein rundenbasiertes Kartenspiel mit Kunden, einem Lobby-Server und einem Spieleserver. Welche Methodologien gibt es, die sowohl sprachenübergreifend als auch bidirektional sind (z. B. Clientanforderung -> Serverserverantwort -> Client sowie Serveranforderung -> Clientclientantwort -> Server)?Cross-Sprache bidirektionale Client-Server-Kommunikationsmethodik?

Ich habe JMS untersucht, glaube aber, dass es zu schwer für meine Bedürfnisse ist (dieses Programm wird nur ein kleiner Maßstab sein, und ich denke nicht, dass die Komplexität diese Lösung geeignet macht). Ich habe kurz in REST geschaut, aber ich glaube, das würde nicht die bidirektionale Anforderung erfüllen. Natürlich gibt es RMI, aber ich würde gerne in der Lage sein, Kunden in C++ und anderen Sprachen als eine weitere Lernübung zu entwickeln.

Wenn ich ehrlich bin, bin ich ein bisschen Verlust, weil ich JMS nicht verwenden möchte, wie ich denke, dass es zu komplex ist, aber ich denke nicht nur TCP-Sockets verwenden und sagen zu verwenden Ein grundlegendes XML-basiertes Protokoll für die Nachrichten wird eine gute Struktur der Kommunikation für das Programm bereitstellen.

Antwort

2

Das Forschungslabor, mit dem ich arbeite, entwickelt ein System namens "Objektorientierte verteilte semantische Dienste".

Wir nutzen einige Arbeiten, die wir mit der serialisierten Sprache durchführen, damit Sie Clients/Server in verschiedenen Sprachen schreiben können und die zugrunde liegenden Nachrichten ein Format sind, das von Clients/Servern unabhängig von ihrer Implementierungssprache serialisiert und deserialisiert wird .

Momentan unterstützen wir meistens Java/ObjectiveC. Sie können sich den Chat-Room-Tutorial ansehen, der Ihnen eine grundlegende Vorstellung davon geben soll, wie Anfragen/Antworten funktionieren.

http://ecologylab.net/research/simplGuide/oodss/index.html

OODSS ist für Spiel-Szenarien gut funktionieren ... das System ursprünglich geschrieben wurde, ein Spiel einer der Forscher in unserem Labor auf arbeitet zu unterstützen. Die Originalarbeit zu OODSS diskutiert die Entwicklung eines Spiels von Grund auf. Das kann gut für Sie funktionieren: http://ecologylab.net/technicalReports/oodss_TR_10_01.pdf

Sie könnten eine ähnliche Idee anwenden, um mehrere Clients in Sprachen zu unterstützen, die noch nicht unterstützt werden. (Sie müssen möglicherweise einige Serialisierungs-/Deserialisierungscodes selbst schreiben, um zu beginnen.)

Viel Glück! Ich hoffe, das hilft!