Методология межязыкового двунаправленного взаимодействия клиент-сервер? - PullRequest
0 голосов
/ 26 марта 2012

Я делаю пошаговую карточную игру, в которой будут клиенты, лобби-сервер и игровой сервер. Какие существуют методологии, которые бывают как мультиязычными, так и двунаправленными (например, запрос клиента -> ответ сервера -> клиент, а также запрос сервера -> ответ клиента -> сервер)?

Я изучил JMS, но считаю, что он слишком тяжелый для моих нужд (эта программа будет небольшого масштаба, и я не думаю, что сложности делают это решение подходящим). Я кратко рассмотрел REST, но я считаю, что это не соответствует двунаправленным требованиям. Конечно, есть RMI, но я хотел бы иметь возможность разрабатывать клиентов на C ++ и других языках в качестве еще одного учебного упражнения.

Если честно, я немного растерялся, потому что не хочу использовать JMS, так как считаю, что это слишком сложно для этого, но я не думаю, что просто использую сокеты TCP и говорю использование Базовый протокол на основе XML для сообщений обеспечит хорошую структуру связи для программы.

1 Ответ

2 голосов
/ 27 сентября 2012

Исследовательская лаборатория, с которой я работаю, разрабатывает систему под названием «Объектно-ориентированные распределенные семантические сервисы».

Мы используем некоторую работу, которую мы выполняем с мультиязычной сериализацией, чтобы позволить вам писать клиенты / серверы на разных языках, а лежащие в основе сообщения должны быть форматом, который сериализуется и десериализуется клиентами / серверами независимо от языка их реализации.

Сейчас мы в основном поддерживаем Java / ObjectiveC. Вы можете взглянуть на учебник чата, который должен дать вам общее представление о том, как работают запросы / ответы.

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

OODSS хорошо работает для игровых сценариев ... система изначально была написана для поддержки игры, над которой работал один из исследователей в нашей лаборатории. Оригинальная статья о OODSS обсуждает разработку игры с нуля. Это может хорошо сработать для вас: http://ecologylab.net/technicalReports/oodss_TR_10_01.pdf

Можно применить аналогичную идею, чтобы разрешить использование нескольких клиентов на языках, которые еще не поддерживаются. (для начала вам может потребоваться написать некоторый код сериализации / десериализации самостоятельно.)

Удачи! Надеюсь, это поможет!

...