Подтвердить что ты не робот

Лучшая структура Java для веб-узлов на стороне сервера

Я хочу создать простой сервер с низкой нагрузкой. Цель состоит в том, чтобы предоставить нескольким клиентам javascript доступ к некоторым функциям, реализованным в Java через WebSockets. Я ищу лучшую библиотеку для этого - она ​​должна быть простой, надежной и т.д. Теперь я рассматриваю 3 альтернативы - jWebSocket - причал - нетто Что самое лучшее? Или может быть что-то еще?

Заранее спасибо

4b9b3361

Ответ 1

jWebSocket теперь включает в себя движок Jetty 8.0, включая SSL, и включает в себя множество приятных для использования функций. Он обеспечивает кросс-браузерные и кросс-платформенные совместимые клиенты, даже больше мобильных приложений, например. под Android, Symbian и BlackBerry. Сервер может быть легко расширен с помощью подключаемого модуля и уже включает в себя множество из них (например, для аутентификации/авторизации, JDBC, SMTP, XMPP/Jabber, RPC, Twitter, Filesharing, Chat и т.д.). Просто проверьте это... http://jwebsocket.org. Ждем ваших отзывов.

Отношения Alex

Ответ 2

Я бы пошел с проверенными серверами сервлетов Java: Jetty или Resin. Они были расширены для обработки WebSockets:

Jetty WebSockets

Resin WebSockets

Мой личный выбор - Jetty, поскольку он очень прост в использовании, и я использовал его как встроенный сервер в нескольких проектах.

На блоке также есть несколько новых детей, например Atmosphere и jWebSocket, но для серверов я предпочитаю проверенное решение. Jetty и Resin также являются родовыми серверами Servlet, поэтому вы можете использовать один продукт для всех ваших потребностей в обслуживании.

Ответ 3

PlayFramework! - это еще один очень хороший вариант.

Ответ 4

FYI, Атмосфера работает поверх смолы, GlassFish и Jetty. Атмосфера освобождает вас от застревания с одним сервером, предоставляя вам переносимость Websocket среди серверов Websocket. Он также предлагает клиентскую библиотеку, которая может выбрать лучший транспорт в случае, если веб-обозреватель не поддерживается браузером. Таким образом, вы не можете сравнивать Атмосферу с Jetty или Rsin

Ответ 6

В то время как я очень сильно оцениваю реализации JWebsockets и Autobahn, я предпочитаю Atmosphere.

Ramp-Up:: Время разгона низкое. Франсуа Аркан прилагает много усилий для тестирования и примеров, помогая каждому достичь быстрых побед. (И я не знаю, почему он способен так быстро реагировать на любые архитектурные вопросы, которые я поднимаю. Впечатляет.)

Перспектива обслуживания:: Для меня удобство обслуживания является основополагающим, если программное обеспечение выходит за рамки основной версии версии 1.0.0. Проект поддерживается на верхнем уровне Maven-POM с правильно построенной иерархией. Это предотвращает несовместимость библиотек. Библиотеки ссылаются на правильный уровень. Это хорошо сделано.

Техническая/функциональная перспектива:: Он предлагает клиентскую библиотеку Java SE (wasync), которая может либо выполнять встроенную связь через websocket (onMessage), либо создавать аннотации Джерси REST (@Path). Впоследствии это делает его настолько простым, насколько это возможно, с сохранением открытого соединения для подписки и популярной парадигмы удаленных процедур (RPC). Это обычная попытка объединить эти две парадигмы. См. Также http://wamp.ws/, который подходит для того же подхода. Кроме того, библиотека предлагает установить свойства QoS, такие как надежность (например, в случае отсоединения клиента) и надежность (кэширование непоставленных сообщений). Это отлично подходит для профессионального программного обеспечения для использования.

Ответ 7

Возможно, вам стоит попробовать Bristleback Server? Используя Bristleback, вы можете выбирать из нескольких движков WebSockets, таких как Jetty, Netty и Tomcat. У вас может быть автономный сервер, а также веб-приложение, использующее WebSockets (Jetty и Tomcat 7). Bristleback использует Spring Framework. Если вы работаете с веб-фреймворками, такими как Struts, Stripes или Play!, вам будет очень легко начать. Конечно, у Bristleback есть своя клиентская библиотека JavaScript для еще более простой разработки.

Полное раскрытие информации: Я являюсь одним из соавторов сервера Bristleback Server.

Ответ 8

Я также добавил бы vert.x в список. Он может использовать серверные веб-узлы и SockJS (эмуляция веб-узлов, когда браузер их не поддерживает).

Обновление:
Undertow http://undertow.io также поддерживает веб-сайты.

Ответ 9

Следуйте моему блогу. Я буду готов к выпуску когда-нибудь в недалеком будущем. Легкий вес был подчеркнут во всем этом, но он также быстро. Я еще не знаю, насколько он будет расти до более высоких нагрузок. Но я некоторое время работаю над демо с относительно низкой нагрузкой и тем, что у меня работает. (Позже я испытаю более тяжелые нагрузки и убедитесь, что он может быть увеличен.)

http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html

Ответ 10

Если вы ищете инфраструктуру для управления сообщениями, группировку пользователей ( "комнаты" ) и синхронизацию данных ( "общие переменные" ), вам может потребоваться рассмотреть Union Platform:

http://www.unionplatform.com

[Полное раскрытие: я являюсь одним из соавторов Союза]

Ответ 11

Почему бы вам просто не написать свое приложение на открытом стандарте, например JMS, и позволить клиентам сидеть на шине JMS в качестве клиентов сообщений? Весь смысл веб-дескрипторов заключается в том, чтобы принести любой собственный TCP-протокол непосредственно клиенту, а не преобразовывать его с вашего конца на http-запрос/ответ.

Ваши службы заднего плана будут разговаривать с брокером JMS, таким как ActiveMQ, и ваши клиенты говорят AMQP в браузере через Javascript API, который выглядит так же, как JMS API в Java. Все, что вам нужно для этого - это шлюз websocket, например Kaazing имеет такой шлюз, все, что он делает, направляет ваш трафик JMS TCP на веб-клиентов через веб-узлы. Они также обеспечивают разветвление, так что вы не перегружаете свою JMS-шину, т.е. Вы просто используете несколько соединений с брокером, чтобы разгрузить миллионное соединение с клиентом браузера.

Суть в том, что вам не нужно привязываться к какой-либо конкретной платформе. Придерживайтесь стандартов, таким образом у вас есть 100% -ная свобода замены компонентов по мере изменения вашей среды.