2015-06-10 3 views
0

У меня есть сервер Java (нет внешних библиотек и не использует sun.net.httpserver пакета)Клиента открывает AJAX соединение и ждет серверов для отправки обновления

Я хотел бы, чтобы клиент открыть соединение с сервером и ждать пока сервер не отправит обновление. Проблема в том, что некоторые браузеры (например, IE11) будут использовать сокет AJAX для отправки нового запроса (например, GET/HTTP/1.1), и проблема в том, что он вызывает сбой моего сервера. Я мог закрыть сокет при закрытии веб-страницы, но тогда клиент должен был открыть новый сокет для отправки другого HTTP-запроса.

Есть ли эффективный способ сделать это?

Редактировать: Еще один вопрос ... Есть ли способ прослушать изменения входного потока сокета с помощью Java?

+0

" это приводит к сбою моего сервера », тогда ваш разорван и должен быть исправлен. – Raedwald

+0

@ Raedwald Сервер не сломан. Он просто ожидает запрос AJAX и вместо этого получает, например, GET, в противном случае он работает просто отлично. – ThePyroEagle

+0

Если вход в программу может привести к ее сбою, ваша программа сломана. Если вход по сети может привести к сбою вашей программы, он уязвим для атаки на отказ в обслуживании. – Raedwald

ответ

0

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

увидеть ответы на этот вопрос, для гораздо больше информации: Is there some way to PUSH data from web server to browser?

+0

Спасибо, это именно то, что я искал. Я не мог найти его, когда искал его раньше (прежде чем задавать вопрос). – ThePyroEagle