Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Программист создал аналог Club Penguin, где можно одновременно общаться как в Zoom и играть

Разработка веб-сайтов *JavaScript *Социальные сети и сообщества Игры и игровые консоли


Full stack разработчик и основатель PushLabs Люк Барвиковски (Luke Barwikowski) рассказал пользователям Reddit о том, над чем он работал последние несколько месяцев. Барвиковски создал Banger.Digital party — это аналог Club Penguin для взрослых пользователей, где они могут одновременно общаться по видеосвязи и играть — управлять своими фигурками-аватарками, выполняя различные действия в виртуальном мире.
Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 6.2K
Комментарии 6

Пишем чат под Android на Websocket'ах

Программирование *Разработка под Android *Kotlin *
Tutorial

Привет Хабр!

Во время локдауна я решил поупражняться в разработке под Android. Начать решил с простой гиперказуальной игры с элементами дуэли. Взаимодействие игроков решил реализовать через отдельный сервер и websocket'ы, но пока читал про все это дело, понял, что простого туториала на русско-язычных ресурсах почему-то нет. Поэтому, решил восполнить этот пробел.

В этой статье я постараюсь описать как настроить WebSocket'ы на примере чата с сервером на SpringBoot и клиенте под Android.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 653
Комментарии 0

WebSockets — полноценный асинхронный веб

Разработка веб-сайтов *
Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
— веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
— приложения, следующие стандартам;
— «долгоиграющие» веб-приложения;
— комплексные приложения со множеством различных асинхронных блоков на странице;
— кросс-доменные приложения.

Заинтриговал? Давайте посмотрим подробнее
Всего голосов 222: ↑210 и ↓12 +198
Просмотры 316K
Комментарии 388

Двунаправленный асинхронный обмен данными в веб-приложениях

Разработка веб-сайтов *
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →
Всего голосов 68: ↑64 и ↓4 +60
Просмотры 19K
Комментарии 52

Поднимаем WebSocket сервер

Разработка веб-сайтов *
Многие уже наслышаны о революции в расширении HTTP протокола — внедрении технологии WebSocket разработчиками Google Chromium. В данной статье речь пойдет о том, как приручить данного зверя — установке и настройке WebSocket сервера на асинхронном фреймворке phpDaemon.
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 66K
Комментарии 21

Взгляд в ближайшее будущее: Firefox 4

Firefox
Во блоге Ajaxian и во блоге Mozilla Hacks появились блогозаписи о том, каков будет грядущий Firefox 4.

Главная новость: Firefox 4 станет окончательным номером той альфа-версии браузера, которая была до этого известна нам в качестве Firefox 3.7.

Одна из основных инноваций Firefox 3.7 (а именно, вычленение плагинов в отдельный процесс) ужé выпущена в составе Firefox 3.6.4.

Помимо неё, в Firefox 4 появятся вот какие новинки:

→  Поддержка SVG и MathML прямо внутри HTML5, без необходимости прибегать к строгому XHTML и пространствам имён.

→  Интерпретатор HTML5 в отдельном потоке, поэтому интерфейс браузера не будет тормозить в момент обработки крупных страниц.

→  Интерпретатор HTML5 будет поддерживать HTML5 forms.

→  Вызов innerHTML станет работать быстрее (примерно на 20%).

→  Поддержка WebSockets (вебоприложения получат дуплексную связь с вебосервером).

→  PushState улучшит AJAX-взаимодействия.

→  Новые средства взаимодействия с вебостраницами: жесты, многотык (multi-touch).

→  Улучшенная поддержка CSS3.

→  Редактируемое содержимое страниц (contentEditable).

→  IndexedDB: структурированное JSON-подобное (а не SQLite-подобное, как было прежде) хранилище данных.

→  Интерфейсы для доступа к микрофонам и вебокамерам посетителей сайта.

Читать дальше →
Всего голосов 140: ↑93 и ↓47 +46
Просмотры 977
Комментарии 126

Mozilla готовит для разработчиков сайтов новые функции

Чулан
Новость появилась на новом сайте для разработчиков Firefox 4, предвещая много хорошего для тех из нас, у кого ограничен трафик: интерфейс IndexedDB позволит Веб приложениям работать даже без подключения к сети. Предлагаемый в качестве дополнения стандарт HTML IndexedDB является одним из целой коллекции технических решений, открывающих новые горизонты для программистов и веб разработчиков.
Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Просмотры 288
Комментарии 19

Замены для nginx (Web Sockets)

Разработка веб-сайтов *
В своё время nginx стал глотком свежего воздуха для Web-разработки.

В настоящее время, к сожалению, этот продукт тормозит развитие Web, так как является динозавром эпохи HTTP/1.0.

Если Вы используете современные возможности HTTP/1.1, или partial updates, или Web Sockets, нужна рабочая альтернатива.
Читать дальше →
Всего голосов 111: ↑68 и ↓43 +25
Просмотры 6.4K
Комментарии 166

Firefox 4 значительно ускорится и получит поддержку inline SVG

Firefox
Перевод
Вечером 30 июня «Мозилла» явилась в Лондон в Англии, чтобы поведать про дополнения («Mozilla Add-Ons») и показать некоторые новые клёвые особенности грядущего Файерфокса 4.

Вероятно, наиболее впечатляющими (если не считать средства создания дополнений «Add-Ons Builder», основанного на «Беспине») оказались следующие будущие возможности Firefox 4:

→  отображение HTML5-видео (<video>)

→  рисование на холсте (<canvas>)

→  манипулирование изображениями на холсте (анализ пикселов, распознавание лиц с помощью opencivitas)

→  технологии «зелёного экрана» (хромакей) в иллюстрациях и видео, достигаемые анализом цвета пикселов

→  HTML5, встраиваемый внутрь SVG (ура!)

→  SVG как <img>

→  SVG как CSS-фон

→  SVG-фильтры, SVG-маски, SVG-контуры обрезки

→  SVG-анимация

→  inline SVG (то есть SVG внутри HTML5)

→  CSS3: селекторы, @font-face, 2D-преобразования (transforms), переходы (transitions), тени, градиенты, вычисления — calc(2em-10px)

→  API: геопозиция (geolocation), оффлайн (IndexDB, localStorage, AppCache, FileAPI: чтение двоичного содержимого из файла, перетаскивание файлов), веб-труженики (web workers) и сокеты (websockets)

→  контроллер на вебсокетах, запускающий презентацию с мобильника

→  WebGL

Некоторые из этих способностей подтверждались демонстрациями:

→  фильтры CSS3 и маски SVG на HTML5-видео:

Читать дальше →
Всего голосов 118: ↑97 и ↓21 +76
Просмотры 913
Комментарии 72

HTML5 Labs: добавляем в IE поддержку WebSockets и IndexedDB

Internet Explorer


HTML5 Labs — новая экспериментальная площадка для тестирования реализации отдельных элементов HTML5 и связанных спецификаций. В рамках проекта будут публиковаться прототипы реализации тех или иных веб-стандартов или их фрагментов, которые, очевидно, в будущем будут востребованны, но в настоящий момент сыроваты или нестабильны.

На текущий момент доступны прототипы реализаций WebSockets и IndexedDB.
Читать дальше →
Всего голосов 53: ↑37 и ↓16 +21
Просмотры 2.3K
Комментарии 10

Вебсокеты против Антивирусов. Первый раунд

Разработка веб-сайтов *
Не за горами наплыв html5 приложений. Для пользователей это еще больше интерактива и новых возможностей, в первую очередь благодаря local storage и websockets технологиям. Для разработчиков это очередная головная боль по обеспечению совместимости. Первый удар ниже пояса нанесли команды Firefox4 и Opera11, запретив по умолчанию поддержку websockets. Разработчики стерпели, разместив в своих faq инструкции как их включить и подложив подкладку в виде flash компонента эмулирующего websockets поддержку для совсем уж устаревших браузеров.

При переводе Клуба Трельяж с comet long polling обработки событий на websockets модель, мы столкнулись с тем, что беда пришла откуда ее не ждали. А пришла она из стана антивирусов.
Читать дальше →
Всего голосов 75: ↑62 и ↓13 +49
Просмотры 2.2K
Комментарии 26

Моделируем полёт PHP на крыльях Erlang

PHP *Erlang/OTP *
В данной статье изложены размышления и фантазии на тему «как можно было бы скрестить Erlang и PHP, чтобы случилось вселенское счастье», а не описание готовой технологии или продукта. Впрочем, мы намерены это реализовать, скорее всего, в форме open-source проекта, если, конечно, уважаемая хабра-аудитория не отговорит :) Собственно, одна из главных задач этой статьи — понять, насколько идея интересна и потенциально полезна широкому PHP-сообществу. Кстати, некоторые из проблем, обсуждаемых в статье, справедливы и для других популярных скриптовых языков (тут я подразумеваю Ruby и Python), так что предлагаемое решение, возможно, будет актуально и для них.
Интересно, нафига козе баян?
Всего голосов 95: ↑86 и ↓9 +77
Просмотры 8.5K
Комментарии 166

Создание приложений реального времени с помощью Server-Sent Events

JavaScript *
Буквально недавно стало известно, что Firefox 6 получит SSE (уже есть в Opera 10.6+, Chrome, WebKit 5+, iOS Safari 4+, Opera Mobile 10+) так, что поддержка более половины всех браузеров (охват аудитории пользователей) уже не за горами. Настало время присмотреться к этой технологии. SSE предложил Ian Hickson более 7 лет назад, но только год назад она стала появляться в браузерах. У нас же есть WebSockets зачем нам ещё один какой-то протокол?! Но во всем есть свои плюсы и минусы, давайте посмотрим чем же SSE может быть полезен.

Идея SSE проста — клиент подписывается на события сервера и как только происходит событие — клиент сразу же получает уведомление и некоторые данные, связанные с этим событием. Чтобы понять полезность протокола SSE необходимо сравнить его с привычными методами получения событий, вкратце объясню их суть:
Читать дальше →
Всего голосов 87: ↑85 и ↓2 +83
Просмотры 44K
Комментарии 55

WaterSpout — веб сервер для асинхронной передачи данных

Разработка веб-сайтов *
Сегодня речь пойдёт об WaterSpout — веб сервере, способном обрабатывать websockets запросы, позволяя общаться в реальном времени между сервером и браузером используя websockets или long polling. Написан он на PHP.

В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
Читать дальше →
Всего голосов 61: ↑54 и ↓7 +47
Просмотры 1.6K
Комментарии 41

Поддержка реверс-проксирования Web Sockets в Nginx

Nginx *
Из песочницы
Если вы используете Socket.IO или Faye с WebSockets, и хотите при этом использовать реверс-прокси с Nginx, то вы встретитесь с проблемой поддержки WebSocket в Nginx. Ее просто нет — WebSocket использует HTTP 1.1, в то же время как Nginx умеет правильно проксировать только HTTP 1.0.

Что делать?


Вы можете попытаться пойти в обход — использовать HAProxy для проксирования tcp соединений, или же скатиться к использованию Long-polling.
Но есть способ реализовать реверсированное проксирование и с NGINX, используя неофициальный патч, реализующий модуль tcp_proxy в nginx, который даст возможность пробрасывать произвольные tcp-соединения (по сути тоже самое, что дает HAProxy).
Читать дальше →
Всего голосов 55: ↑53 и ↓2 +51
Просмотры 10K
Комментарии 15

WebSockets в Rails приложении

Ruby on Rails *
Недавно я столкнулся с необходимостью реализовать небольшой чат в одном из Rails-проектов. Существует много способов решения данной задачи, начиная от периодических опросов сервера с помощью AJAX и заканчивая использованием готовых решений сторонних сервисов. С целью минимизации трафика и времени отклика системы было принято решение использовать WebSocket API – одну из частей стандарта HTML 5, позволяющую серверу инициировать передачу данных, не дожидаясь запроса клиента. К сожалению WebSocket API поддерживается достаточно ограниченным числом браузеров, среди которых Google Chrome, Safari 5, Mobile Safari в iOS 4.2 и выше и пожалуй все (если я ошибаюсь – поправьте меня в комментариях). Конечно же этого недостаточно для боевого приложения, поэтому необходимо предложить запасной вариант для браузеров без нативной поддержки WebSocket API. Удобнее всего в этом случае использовать Flash Sockets. С помощью WebSocket API и Flash Sockets приложение покрывает большую часть возможных случаев, включая как настольные системы (MS Windows, Linux, Mac OS X), так и мобильные (Android, iOS).
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 15K
Комментарии 11

Firefox 6 станет поддерживать ряд свойств из черновика модуля CSS3 Text

Firefox
Tutorial
Как известно, Firefox 5 вышел 21 июня, а между отдельными выпусками ожидается шестинедельный промежуток, так что до появления Firefox 6 остаётся чуть больше недели. Ужé доступна его бета-версия, ужé обретает более или менее окончательный вид страница «Firefox 6 for developers» в вики MDN, содержащая перечень новых возможностей будущей новой версии Файерфокса.

Этих возможностей не так мало: обновлена и вдругорядь включена поддержка WebSockets, появилась поддержка элемента <progress>, отслеживаются события тыка пальцем и даже многотыка (multitouch), и так далее. Однако такого рода нововведения для их широкого использования всё же потребуют некоторой кросс-платформенности, так что меня вместо них более всего порадовали новинки CSS, которые носят скорее декоративный характер и смысл — так что, даже если и не заработают, то не страшно.

Речь идёт об экспериментальном (с префиксом «-moz-») внедрении четырёх свойств из черновика «CSS Text Level 3», и это свойства -moz-text-decoration-color, -moz-text-decoration-line, -moz-text-decoration-style и -moz-hyphens.

Предлагаю внимательно рассмотреть каждое из них, вглядеться в приносимые ими возможности и перспективы.

Читать дальше →
Всего голосов 69: ↑51 и ↓18 +33
Просмотры 944
Комментарии 87

Chess@home: создаем крупнейший шахматный ИИ

Искусственный интеллект Логические игры
Перевод
Многие знакомы с проектом Seti@home: мощнейшей инициативой по поиску следов внеземных цивилизаций в океане данных, получаемых с неба, с использованием мощностей миллионов компьютеров по всему земному шару («матрицы»).

Хотя инопланетян до сих пор не обнаружили, Seti@home вполне успешно демонстрирует потенциал крупномасштабных распределенных вычислений. Проекты типа BOINC распространили подобные инициативы в другие области: биологию, медицину и физику.
Читать дальше →
Всего голосов 80: ↑73 и ↓7 +66
Просмотры 3.8K
Комментарии 46

Удаленный вызов процедур в Node.js с использованием Now.js

Node.JS *

Введение


Для Node.js есть отличная библиотека Socket.io для кроссбраузерного использования вебсокетов.
Но для двухстороннего взаимодействия сервера и клиента приходится использовать модель сообщений.
С помощью библиотеки Now.js есть возможность прозрачного вызова функций клиента со стороны сервера и наоборот.
Читать дальше →
Всего голосов 32: ↑23 и ↓9 +14
Просмотры 4.8K
Комментарии 10

Простая real-time коммуникация с посетителем

Разработка веб-сайтов *
Я давно интересуюсь вебом в реальном времени. На сегодня уже есть ряд библиотек для этого. В этом топике я хочу рассказать про недавно опробованный нами самый простой способ — использование внешнего сервиса Pusher.com.

Если сегодня асинхронно отправить сообщение на сервер проще простого, то с обратным транспортом пока не все так радужно. Сервис как раз берет на себя эту задачу.

Читать дальше →
Всего голосов 18: ↑12 и ↓6 +6
Просмотры 7.7K
Комментарии 18