одиночное соединение клиента сокетов Java - PullRequest
0 голосов
/ 13 мая 2011

Я пытаюсь подключиться из веб-приложения J2ee к другому серверу (серверу сокетов), который поддерживает одно соединение TCP-соединение.Сервер сокетов поддерживает одно соединение от WEB, что означает, что как только соединение открыто, его не следует закрывать ни для какого запроса.

Поэтому я сомневаюсь, как я могу сохранить это соединение живым для n запроса, а затем обработать тот же самый ответ на этот запрос сам?(Синхронизируйте его)

А что, если у меня есть два приложения, обращающихся к одному и тому же серверу сокетов (как мне поддерживать одно соединение)?Что, если веб-система будет кластеризована?

  1. Формирование одного клиента для n запросов из Интернета?

  2. Как обработать ответ от сервера Socket дляэтот запрос (сортировка проверки, чтобы получить соответствующий ответ на запрос)

  3. если на сервере приложений установлено два или более приложений, как обрабатывать сокет-соединение как одно соединение с сервером приложений?

  4. что если сервер приложений должен быть кластеризован?

Ответы [ 2 ]

0 голосов
/ 19 мая 2011
  1. Формирование одного клиента для n запроса из Интернета?

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

  2. Как обработать ответ от сервера Socket на этот запрос (сортировка проверки, чтобы получить соответствующий ответ на запрос)

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

  3. если на сервере приложений установлено два или более приложений, как обрабатывать сокет-соединение как одно соединение с сервером приложений?

    Внедрить систему очередей или пула соединений для сокет-клиента, и, таким образом, будет гарантировано, что за один раз произойдет только 1 запрос.

  4. что если сервер приложений должен быть кластеризован?

    Затем вам нужно отделить клиентский модуль сокета от другого приложения, и, следовательно, будет только 1 система пула / очереди.

Будет лучше, если вы сможете изменить «сервер сокетов», чтобы он мог обрабатывать несколько запросов одновременно. Для этого есть структура, и реализация довольно проста: Apache MINA

0 голосов
/ 13 мая 2011

Вам необходимо создать версию сервера, которая принимает несколько одновременных подключений (либо изменить сервер, либо создать прокси-сервер). Это решит все эти проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...