На хабре уже есть статья по этой теме. Но фреймворк с тех пор сильно обновился и, к сожалению, по старой статье разобраться скорее всего будет проблематично. Кроме того, в изучении чего-то нового всегда самое сложное — это начало. Поэтому по свежей памяти постараюсь описать процесс старта хотя бы в общих чертах.Читать полностью »
Рубрика «WebSocket» - 9
Быстрый старт с WebSocket на основе phpDaemon
2013-02-02 в 22:54, admin, рубрики: WebSocket, Веб-разработка, метки: WebSocketWebSocket-чат на Tornado для вашего Django-проекта
2012-11-26 в 10:41, admin, рубрики: Background Dating, django, python, redis, tornado, WebSocket, Веб-разработка, чат, метки: Background Dating, Django, redis, tornado, WebSocket, чат
Недавно я запустил сайт backgrounddating.com и написал об этом здесь, на Хабрахабре. Разумеется, я уже тогда рассказал о некоторых технических деталях реализации этого проекта, но об одной из возможностей сайта я бы хотел написать отдельно, тем более, что документации (как на русском, так и на английском) на эту тему в Интернете пока что довольно мало. Итак, речь пойдёт о чате в реальном времени между двумя пользователями. Задача состоит в том, чтобы любой пользователь мог отправлять другим пользователям сообщения, и, если у получателя сообщения открыт чат с этим пользователям, то он сразу же видел входящие сообщения (а в ином случае он мог прочитать сообщения позже: то есть при открытии чата загружается история последних сообщений).
Если вам нужно, чтобы пользователи могли общаться не только вдвоём, а группами из любого количества человек, то сделать это можно почти что элементарно: описанная реализация, по сути, рассчитана на такое расширение функциональности.
Сразу уточню, что это не единственный способ реализовать подобное. Вы можете использовать другой асинхронный веб-сервер (например node.js), можете использовать другую очередь сообщений (или вообще её не использовать, если вам подходят особенности такого варианта: с пользователями одного канала обязательно общается один и тот же worker веб-сервера). Я даже не утверждаю, что этот вариант самый лучший (но в данном случае он подошёл лучше всех). В конце концов, мы здесь вообще не будем рассматривать костыли (long polling, Flash) для старых браузеров (а это почти все версии IE, например), не поддерживающих веб-сокеты, и даже не будем рассматривать возможность подключаться из тех браузеров, которые уже поддерживают протокол WebSocket, но не стандартизированную версию (RFC 6455), а одну из устаревших. О том, как можно включить поддержку устаревшей версии «draft 76» (она же «hixie-76»), смотрите в документации Tornado.
Читать полностью »
Background Dating — в поисках людей, с которыми интересно говорить
2012-11-21 в 16:28, admin, рубрики: Background Dating, django, redis, tornado, WebSocket, общение, я пиарюсь, метки: Background Dating, Django, redis, tornado, WebSocket, общениеИтак, я давно хотел написать сайт знакомств, но при этом совершенно не хотелось, чтобы он был таким же, как и сотни других. В итоге стало ясно, что это должен быть не совсем сайт знакомтсв, а скорее некое место, где можно находить интересных людей. С другой стороны, не хотелось ограничиваться какой-то конкретной категорией людей, поэтому вариант создания тематического сайта не рассматривался. В итоге получилось то, что вы можете видеть по ссылке. Сразу можно обратить внимание на то, что не предлагается заполнять какие-либо анкетные данные. Не потому, что их нужно заполнить после регистрации, а потому что анкет на сайте нет.
Анкет нет потому, что они имеют слишком большие ограничения. Обычно предлагается задать некий стандартизованный набор параметров, с такими же стандартизованными вариантами ответа. Но как только хочется указать что-то ещё или ответить как-то иначе, сталкиваешься с тем, что такую возможность не предусмотрели (или работает это не так, как хотелось бы).
Под хабракатом я расскажу о том, что есть на этом сайте вместо анкет, а также, конечно, напишу о некоторых технических деталях (куда же без этого).
А вот, кстати, и описание в «рекламном» стиле:
Вы давно хотели найти себе девушку, которая умеет программировать на Brainfuck? Или вам важно, чтобы она была сторонницей адаптивной и семантической вёрстки? А может, вы хотите познакомиться с той, кто может легко рассказать об отличиях микроядра от монолитного, но при этом ещё является танцовщицей?
Теперь у вас появилась такая возможность — если, конечно, она уже зарегистрировалась на Background Dating. :)
Читать полностью »
JavaScript SIP библиотека от авторов стандарта
2012-11-19 в 8:38, admin, рубрики: ip-телефония, javascript, sip, WebRTC, WebSocket, Веб-разработка, метки: javascript, sip, WebRTC, WebSocketЯ уже писал заметку на эту тему, с того времени стала доступна еще одна JavaScript SIP библиотека. В первой статье я упоминал её, но на тот момент вся информация о библиотеке включала: описание авторов и видео демонстрирующее работу. Сейчас исходный код открыт под MIT лицензией, имеются документация и форум.
Примечательно, что данную библиотеку разрабатывают авторы того самого стандарта, который и описывает особенности SIP протокола при работе поверх WebSocket. Помимо этого разработчики указывают следующие достоинства:
- легковесна, ~140КB
- простой и мощный API
- совместима с популярными SIP серверами
- аудио-видео вызовы; мгновенные сообщения
- статус пользователей (эта функция уникальна, пока отсутствует в других библиотеках)
От себя к преимуществам добавлю: компетентность и отзывчивость авторов, багрепорты закрывают очень быстро.
Под катом длинное подробное видео с пошаговой инструкцией в первой половине для тех кто захочет попробовать самостоятельно, и демонстрацией работы во второй половине (c 3:10). Кстати, в свежих версиях Chrome, WebRTC — протокол для обмена аудио-видео данными, доступен и включен по умолчанию.
Читать полностью »
HowTo: Как подружить Django с WebSocket (socket.io)
2012-11-17 в 12:35, admin, рубрики: django, howto, python, redis, socket.io, tornado, WebSocket, метки: Django, howto, python, redis, socket.io, tornado, WebSocket Возникла у меня потребность атомарного обновления в реальном времени страницы у некоторого количества пользователей в зависимости от действий других пользователей (не гербалайф чат). Понятное дело, можно всё выкинуть в помойку и, по-молодецки, запилить с нуля на tornado/twisted.web, но явно не самый продуктивный путь (да и я не мо́лодец ни разу) когда всё что надо — уже работает на Django и нужно всего-то чуть-чуть… Естественным образом, по сути своей, сюда просится WebSocket. И всё бы ничего но Django WSGI приложение, а этот стандарт не предполагает таких выкрутасов даже близко (пока). Гугления интернетов навели, в очередной раз, на труд известного python-гуру kmike (это без сарказма, т.к. его работы выручали меня лично уже не однократно, за что нижайший ему поклон!).
Итак если вы хотите скрестить ваш Django проект с websocket посредством js библиотеки socket.io — вилькоммен!
Читать полностью »
Реальное применение WebRTC в сервисах IP-телефонии
2012-11-13 в 19:51, admin, рубрики: asterisk, Google Chrome, ip-телефония, rtp, sip, voip, WebRTC, WebSocket, метки: asterisk, ip-телефония, rtp, sip, voip, WebRTC, WebSocket На Хабре уже сообщалось о технологии WebRTC (Web Real-Time Communications). Стандарту WebRTC, который в настоящее время находится еще в черновом варианте, пророчат большое будущее, и в дальнейшем развитие Интернета и веб-технологий он вполне готов повторить путь Skype.
WebRTC может быть использован для создание принципиально новой категории веб-приложений, способных работать с голосовым и видео трафиком без задействования сторонних технологий и программ, с использованием только HTML5 и JavaScript, что существенно облегчит разработчикам создание приложений.
Читать полностью »
Внедрение websocket-ов на клиентские сайты конструктора сайтов
2012-08-14 в 20:08, admin, рубрики: perl, WebSocket, websocket server, websockets, Веб-разработка, высокая производительность, конструктор сайтов, метки: perl, WebSocket, websocket server, websockets, конструктор сайтовWebsocket-ы полезны постоянным дуплексным соединением backend-сервера с браузером клиента, — это прочный мост между сервисом и посетителями, по которому удобно беспрепятственно транспортировать потоки данных в обе стороны.
Перечень «граблей» внедрения websocket-ов на конструктор сайтов
2012-08-14 в 20:08, admin, рубрики: perl, WebSocket, websocket server, websockets, Веб-разработка, высокая производительность, конструктор сайтов, метки: perl, WebSocket, websocket server, websockets, конструктор сайтовWebsocket-ы полезны постоянным дуплексным соединением backend-сервера с браузером клиента, — это прочный мост между сервисом и посетителями, по которому удобно беспрепятственно транспортировать потоки данных в обе стороны.
В результате внедрения websocket-ов наш проект получил возможность в реальном времени менять по своему усмотрению отображение страниц в браузере на протяжении всей клиентской сессии и иметь обратную связь.
В ходе построения всей технологической цепочки мы легко перешагнули через проблемы с браузерами, лишь изредка неподдерживающие либо сами websocket-ы, либо их эмуляцию через flash.
Однако, когда дело дошло до полевых испытаний, обнаружилась масса проблем с ISP, всеми мыслимыми и немыслимыми способами пытающихся сэкономить трафик за счёт своих клиентов. Об этих и других граблях полноценного боевого внедрения websocket-ов читайте под катом.
Перечень «граблей» внедрения websocket′ов на клиентские веб-ресурсы конструктора сайтов
2012-08-14 в 20:08, admin, рубрики: perl, WebSocket, websocket server, websockets, Веб-разработка, высокая производительность, конструктор сайтов, метки: perl, WebSocket, websocket server, websockets, конструктор сайтовWebsocket′ы полезны постоянным дуплексным соединением backend-сервера с браузером клиента — это прочный мост между сервисом и посетителями, по которому удобно беспрепятственно транспортировать потоки данных в обе стороны.
В результате внедрения websocket′ов наш проект получил возможность в реальном времени менять по своему усмотрению отображение страниц в браузере на протяжении всей клиентской сессии и иметь обратную связь.
В ходе построения всей технологической цепочки мы легко перешагнули через проблемы с браузерами, лишь изредка не поддерживающими либо сами websocket′ы, либо их эмуляцию через flash.
Однако, когда дело дошло до полевых испытаний, обнаружилась масса проблем с ISP, всеми мыслимыми и немыслимыми способами пытающимися сэкономить трафик за счёт своих клиентов. Об этих и других «граблях» полноценного боевого внедрения websocket′ов читайте под катом.Читать полностью »
Осовремененный Unix Way или pipe в браузер
2012-07-11 в 11:08, admin, рубрики: django, linux, open source, pipe, python, sockjs, tornado, WebSocket, Веб-разработка, метки: Django, pipe, python, sockjs, tornado, WebSocket Наверное, каждый, кому когда-нибудь приходилось следить одновременно за большим количеством окошек с логами, подумывал о переносе некоторых из них на экран планшета или телефона.
А, находясь далеко от компьютера, следить за выхлопом недавно запущенного большого и страшного сервиса?
Конечно, можно поставить ssh клиент на телефон, но это не особо удобно.
Поэтому я решил сделать мини-сервис упрощающий «удалённый» просмотр логов.
