Можете ли вы подключить веб-сокет HTML5 к сокету Java? - PullRequest
10 голосов
/ 10 февраля 2012

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

Есть ли простой способ сделатьWebSocket общаться с Java Socket?

Ответы [ 2 ]

14 голосов
/ 10 февраля 2012

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

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

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

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

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

4 голосов
/ 10 февраля 2012

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

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

...