Можете ли вы подключить веб-сокет HTML5 к Java Socket?

Я создал систему, на которой была запущена Java-программа на сервере, и Java-апплет, встроенный в страницу в клиентском браузере, а два - через Java-сокеты. Мне интересно, могу ли я переключиться с апплета Java только на HTML5 и javascript, используя WebSocket на стороне клиента для связи с сокетом Java на сервере.

Есть ли простой способ заставить WebSocket взаимодействовать с Java Socket?

Ответ 1

Есть ли простой способ заставить WebSocket взаимодействовать с Java Socket?

Из того, что я понимаю, WebSocket работает на стороне клиента, открывая порт 80, подключаемый к серверной стороне и отправляя на HTTP-запрос варианта HTTP 1.1 для согласования соединения WebSocket. Если сервер распознает это, он отправит подходящий ответ, а затем разрешит использование открытого TCP-соединения для полнодуплексного взаимодействия клиент-сервер.

Похоже, можно было бы быстро собрать серверную сторону, которая просто поняла согласование WebSocket, а не полный HTTP. Тем не менее, я думаю, вам лучше смотреть на существующие реализации WebSocket, в том числе на встроенные в HTTP-серверы/стеки протоколов.

Эта страница Wikipedia сравнивает ряд реализаций WebSocket и должна помочь вам решить, какую реализацию на стороне сервера использовать.

Но для прямого ответа на ваш личный вопрос клиент WebSocket может подключаться только к серверу, поддерживающему WebSocket; то есть тот, который может выполнять начальное согласование. (На стороне клиента вы можете реализовать запуск с голого Socket, но вам нужно будет реализовать весь "материал HTTP" поверх этого... для этапа настройки.)

Ответ 2

Нет, вы не можете общаться с помощью обычных сокетов с клиентскими WebSockets.

WebSockets - это специальные HTTP-запросы с обновлением в HTTP-заголовке и стандартный протокол для установления соединения (см. официальный документ RFC).