Сервер веб-сокетов с использованием Apache HttpComponent NIO

Можно ли создать сервер веб-сокетов с сервером apache httpcomponent nio в качестве базы? https://hc.apache.org/httpcomponents-core-ga/httpcore-nio/examples/org/apache/http/examples/nio/NHttpServer.java, как указано в приведенной выше ссылке, я могу создать сервер nio. Но можно ли преобразовать его в сервер веб-сайта? Если да, то любая идея о том, как это сделать, пожалуйста?


person Sajith Dilshan    schedule 26.02.2014    source источник
comment
это школьное задание или работа? уже существует неблокирующий веб-сервер, который реализует API веб-сокетов для java, не уверен, что он может быть вам полезен, это Undertow, и вы можете проверить код здесь github.com/undertow-io/undertow   -  person Leo    schedule 26.02.2014
comment
Спасибо за информацию Лео. Но я с нетерпением жду возможности реализовать свой собственный сервер веб-сокетов на основе шаблона реактора nio. До сих пор я реализовал базовое рукопожатие и обмен сообщениями. Но проблема в том, что всякий раз, когда я отправляю длинное текстовое сообщение, я получаю следующую ошибку. Ошибка подключения WebSocket к «ws://localhost:8887/»: сервер не должен маскировать кадры, которые он отправляет клиенту.   -  person Sajith Dilshan    schedule 27.02.2014


Ответы (2)


Спасибо за помощь, ребята! Наконец я понял это. Мне пришлось написать собственный класс IOEventDispatch и выполнить его через IOReactor. В моем пользовательском классе IOEventDispatch реализована обработка подключения к веб-сокету.

person Sajith Dilshan    schedule 03.03.2014

Пока я не обнаружил, что веб-сокет создает туннель от клиента к серверу (с использованием javascript), а с nio socket вы делаете это с полной java (т.е. клиент может быть апплетом, но не js). Вы можете использовать веб-сокет для передачи данных с клиента на сервер и использовать канал nio для записи файла на сервер (это возможно и выглядит подходящим подходом).

person Arun    schedule 03.03.2014