Пример ActiveMQ, который показывает клиент-сервер 2 пути связи? - PullRequest
2 голосов
/ 09 февраля 2011

Я хочу написать клиентское приложение Java SE, которое взаимодействует с сервером Java. Представьте себе что-то похожее на онлайн-игру, в которой много трафика и потенциально несколько клиентов подключены к одному серверу.

  1. Постоянная связь между клиентом и сервером
  2. Связь будет не в порядке, вне полосы, поэтому ни один конец не знает и не ожидает, какое сообщение он может получить в следующий раз или когда.
  3. Сервер не знает IP-адрес клиента и не может установить связь с клиентом (поскольку в пути может быть NAT). Поэтому любые открытые порты должны быть инициированы со стороны клиента.
  4. Фактическая полезная нагрузка будет сериализована в байтах. Я намереваюсь использовать буфер протоколов для распределения сообщений в байтах по проводам, чтобы транспортный конверт тоже был легковесным.
  5. Клиент - это Java SE, но потенциально когда-нибудь это может быть C ++.

ActiveMQ, кажется, является подходящим выбором, но так как я никогда не использовал его таким образом, я не уверен, имеет ли он производительность или характеристики.

Может кто-нибудь посоветовать, если это подходит, с какими подводными камнями я могу столкнуться и, возможно, предложить учебник, демонстрирующий нечто похожее на то, что я рассматриваю?

1 Ответ

5 голосов
/ 11 февраля 2011

Да, я очень рекомендую ActiveMQ , он быстрый, простой в установке, он прекрасно справится со всеми вашими требованиями.Это опция строгого кодирования действительно сжимает размер конверта сообщения и даже поддерживает 'useCompression' , чтобы сжать тела сообщения для вас.У этого также есть хороший клиент C ++

...