JAVA — как организовать протокол общения клиента и сервера?

Здравствуйте и огромное спасибо за ответы.

Хотелось бы спросить, каким способом в java принято "разруливать" приходящие пакеты от клиента на сервере, сериализация и десериализация пакетов из json или protobuf, как вариант для формата данных это более и менее понятно, но каким способом(думаю их не мало) лучше всего "разруливать" пришедшие данные в методы классов?

Пока в голову лезет 2 возможных варианта:
1) Отправлять в пакетах идентификатор команды и далее уже через switch вызывать тот или иной метод.
2) Подозреваю есть реализации для вызова по имени метода:
php:
- function_exists для определения наличия метода
- call_user_func для вызовы
lua:
- pcall для вызова

Возможно, что-то описал неверно, спасибо за понимание.
  • Вопрос задан
  • 3326 просмотров
Пригласить эксперта
Ответы на вопрос 3
timych
@timych
Обратите внимание на данный фреймворк resteasy.jboss.org
Работа с ним довольна проста и решит большинство ваших потребностей. Вот простейший пример www.mkyong.com/webservices/jax-rs/resteasy-hello-w... Мы делаем так - есть расшаренный проект , содержащий DTO классы. И клиент и сервер знают эти классы. Клиент шлет запрос на сервер . DTO заворачиваются в JSON RestyGWT(мы на GWT пишем). Сервер парсит с помощью RestEasy. Также вот неплохая библиотека для работы с JSON https://code.google.com/p/google-gson/ , может пригодится.
Ответ написан
Комментировать
proDOOMman
@proDOOMman
Сквозь рябь букв RPC вижу я.
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Если данные бинарные, то для (де)сериализации можно использовать protobuf, для вызова функций - рекомендую или простой REST на сервалетах или JAX-RS.
Вот что нашел по быстрому
- sleeplessinslc.blogspot.ru/2010/03/restful-represe...
- www.javarants.com/2008/12/27/using-jax-rs-with-pro...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы