#websocket #html
#websocket #HTML
Вопрос:
Я хотел бы найти хорошее (актуальное) руководство по запуску Java Trail type по Websockets, содержащее как клиентский код Javascript, так и серверный код Java (который действительно работает). На стороне сервера, если все, что мне нужно сделать, это создать простой сервер сокетов или что-то в этом роде, пожалуйста, скажите. Я пока ничего не нашел (хотя я часами гуглил), который предоставлял бы необходимую базовую информацию, подобную этой (за исключением на стороне клиента, что, по-видимому, очень просто).
Я не заинтересован в использовании существующих серверных систем Websocket (кроме как начинать с простого копирования-вставки из простого руководства). Если вам интересно, я расскажу вам, почему ниже.
У меня есть проект с открытым исходным кодом, который требовал HTML5 задолго до его начала (с момента его первоначальной концепции много лет назад). Получение двусторонней связи из Websockets в отличие от длительного опроса, бесконечных фреймов и т.д. для меня это выглядит как победитель. Текущая версия программного обеспечения (framework) является HLL «легкой» — с моим обычным акцентом на то, чтобы не перетаскивать дополнительный код. Он использует только Java SE, хотя я намерен создавать версии с использованием EE communications. В настоящее время я могу легко установить весь фреймворк с достаточным пространством для компонентов приложения на небольших устройствах, таких как сотовые телефоны.
- Я хочу минимум кода.
- Я горжусь тем, что понимаю весь код в системе.
- Я думаю, что это смерть для нового проекта с открытым исходным кодом, если вы должны говорить людям, которые хотят попробовать это, что они должны загрузить и установить все виды другого открытого исходного кода, чтобы сделать это.
- Я не хочу, чтобы мой код подвергался изменениям в чужом коде.
- Это действительно не должно быть так сложно — если я просто найду нужную документацию.
ОБНОВЛЕНИЕ: мне больше не нужен простой учебник по websockets. Я уже на пути к созданию сервера websocket производственного класса, и у меня есть очень хороший браузерный клиент для тестирования. Сейчас я создаю клиент без браузера, чтобы использовать его. Кстати, создать мультиклиентский сервер websocket, который реализует полный стандарт, непросто. (Оглядываясь назад — неудивительно, что я не получил никаких ответов.) И если он собирается работать как автономный сервер для браузерных клиентов, ему нужен http (по крайней мере, для предоставления веб-страниц) и другие материалы. Проект не для слабонервных или тех, у кого мало времени на него.
Ответ №1:
С момента первой публикации я создавал свой собственный сервер WebSocket. Мечты о том, что все это было бы просто, быстро прошли. Однако я подбираюсь достаточно близко, чтобы упомянуть слово «release» как в бесплатной бета-версии для всех, кто хочет сервер websocket. (Обратите внимание, что я просто «упоминаю» это слово — у меня еще как минимум пара недель впереди.) Это многопользовательский сервер, легкий и потрясающе быстрый. В конечном итоге я добавлю поддержку http, чтобы для доставки веб-страниц не требовался другой сервер (WebSockets в любом случае имеют обновленные http-соединения). Я также добавлю функциональность HLL. Первое, что касается этого, это то, что это упростит приложение. Несмотря на то, что я постоянно работал над поддержанием статуса «легковесности», вся эта комбинация была целью всей моей жизни, и я верю, что разработчики найдут ее потрясающей для создания чего угодно — от простых и непосредственных до крупномасштабных сложных распределенных интеллектуальных систем.
Я использовал самую последнюю версию стандарта, которая является окончательным черновиком и, вероятно, будет очень близка, если не совпадать с окончательным стандартом; версия 1. Пока что он работает с Chromium (Chrome dev) и Firefox. Однако, по-видимому, в их WebKit есть какой-то код, который обеспечивает поддержку других браузеров. Я еще не пробовал это. С помощью браузера я пока установил соединение и передаю текстовые сообщения (большие и маленькие) туда и обратно. Это все, что я обнаружил на данный момент, что обрабатывает браузер. Я полагаю, что поддержка очень больших текстовых «сообщений» действительно будет использоваться только для передачи файлов в сочетании с возможностями локального хранилища HTML5. Я тоже этого еще не пробовал. Вероятно, в какой-то момент двоичные передачи будут подключены к потоковому видео и аудио HTML5, но пока я не встречал упоминаний об этом.
В настоящее время я работаю над Java-клиентом, который будет поддерживать полный стандарт, включая пинги и двоичную передачу, передачу файлов — весь шарик из воска. Большая часть того, что мне нужно, уже создана для сервера и его приложения «echo», которое включает отправку сообщений точно так же, как клиент. Затем я вернусь к некоторым из моих ранних работ, чтобы сделать приятное обобщение при добавлении новой функциональности. Я думаю, что во многих случаях наличие одного или нескольких Java-клиентов websocket в приложениях будет полезным. И это также предоставит полные возможности для веб-браузеров, когда они будут готовы к этому.
Я также знаю, что Opera довольно популярна среди энтузиастов HTML5. На самом деле я начал использовать версию стандарта, который они поддерживают, поэтому добавить его не должно быть сложно. (Просто дурачился, пытаясь найти свой путь — и получил материал, специфичный для этой версии, работающий.) Я серьезно испытываю искушение потратить время на поддержку этой версии, даже если она должна полностью устареть в течение нескольких месяцев. Просто Opera очень хороша в других материалах HTML5, и ею пользуется большая толпа энтузиастов. С другой стороны, они в основном работают на стороне клиента браузера, и я не знаю, будут ли они сильно задействованы при создании серверных приложений.
Ответ №2:
Статьи в блоге, связанные с моей работой над WebSockets.
Демонстрация сервера WebSocket, 26 сентября 2011
Демонстрация WebSocket в Microsoft Internet Explorer, 16 ноября 2011