Как обрабатывать RPC в клиент-серверной игре PlayN?

Я хотел бы использовать PlayN для создания клиент-серверной карточной игры, например, Hearts. Хотя я в основном фокусируюсь на выводе HTML5, в идеале я хотел бы быть платформо-агностичным на случай, если в будущем я решу сделать клиент для Android. Как мне подойти к механизму RPC?

Вот варианты, о которых я думал:

  1. Использовать JSON для RPC с методами get()/post() - написать сервлет, который принимает/возвращает JSON, и заставить все версии клиентского кода использовать его. Это кажется выполнимым, но меня беспокоит многословность JSON. Как только я получу работающие сердца, я хотел бы перейти к более сложным играм, и меня беспокоит, что JSON приведет к тому, что между клиентом и сервером будет передаваться много гораздо более длинных, чем нужно, сообщений. Я не знаю, как работать с JSON в Java, но предполагаю, что это возможно. Соответствуют ли мои предположения действительности? Насколько хорошо Java работает с JSON?
  2. Продолжайте использовать GWT-RPC. Я могу сделать это, взяв интерфейс асинхронного сервиса в конструкторе моего ядра (платформо-агностического), а в HTML main() я передаю интерфейс GWT Async, созданный GWT.create(MyService.class) (или, по крайней мере, обертку вокруг него). Однако я не представляю, насколько хорошо это будет работать для не-HTML версий. Возможно ли мне использовать GWT-RPC из клиентского Java-кода напрямую?
  3. Использовать какую-то другую форму RPC. Any suggestions?
9
задан Mark Schmit 28 January 2012 в 16:35
поделиться