Использование реализации Java Websocket API без веб-сервера

Можно ли реализовать пользовательское приложение WebSocket на Java без необходимости запускать его на веб-сервере, таком как GlassFish, Tomcat, Jetty и т. д.?

Я намерен разработать специальное приложение и хотел бы реализовать свой собственный способ управления потоками, мониторинга, балансировки нагрузки, обмена сообщениями и тому подобного. (по сравнению, например, с ServerSocket в Java TCP). Я знаю, что существуют контейнеры Tyrus, такие как интеграция Grizzly для автономного сервера и поддержка сервлетов, а также есть Jetty, но я не уверен, что это то, что я ищу. Является ли Grizzly или Jetty самостоятельным решением? Я знаю, что Tyrus является своего рода оболочкой для реализации Grizzly WebSocket, но, честно говоря, я не уверен, как эти два взаимосвязаны.

Любые предложения более чем приветствуются! Благодарю вас!


person friendOfOURS    schedule 29.10.2015    source источник


Ответы (2)


Другими словами, вы пытаетесь реализовать сервер WebSocket, например: https://code.google.com/p/jwebsocket/ (ссылка не работает)

http://jwebsocket.org/downloads/jwebsocket-latest-versions (новая ссылка )

person bouwerp    schedule 29.10.2015
comment
Спасибо за ваш ответ! Да, сервер WebSocket — это то, что я хочу построить. Что-то вроде jWebSocket, но, конечно, не такое сложное и всеобъемлющее. Я просмотрел документацию jWebSocket, и они используют свой собственный внутренний TCPEngine, а также сторонние механизмы, такие как Netty или Jetty. Исходя из этого, я предполагаю, что можно реализовать автономный сервер, управляемый, например, JettyEngine (?) - person friendOfOURS; 29.10.2015
comment
Да, это вполне возможно, хотя это может стать очень сложным (в зависимости от того, какие части вы будете писать с нуля). Насколько это возможно, я бы рекомендовал повторное использование, поэтому выбирайте блоки как можно большего размера. Но предела нет. Вы даже можете перейти на уровень протокола, если хотите: ) - person bouwerp; 30.10.2015
comment
ссылка 404, исправьте пожалуйста; jwebsocket.org/downloads/jwebsocket-latest-versions - person user1133275; 01.05.2017

Tyrus не является "какой-то оболочкой Grizzly", но может работать поверх него.

(Tyrus является эталонной реализацией WebSocket API для Java (JSR 356), которая является частью Java EE).

Запуск без веб-сервера (при условии, что вы говорите о сервере приложений или о чем-то «большом») вполне возможен и очень прост, поскольку мы используем его для нашего тестирования «e2e». (Я разработчик Tyrus, если это имеет значение).

Запустить новый контейнер, который может обрабатывать соединения WebSocket, очень просто: Glassfish/tyrus/sample/btc/xchange/Main.java" rel="nofollow">Main.java , см. декларацию проекта [pom.xml] для полного списка зависимостей.

person Pavel Bucek    schedule 02.11.2015