Pull to refresh
0

Интерактивный сайт с post-hawk? Легко!

Reading time3 min
Views5.7K
Здравствуй, %habrauser%!

Время бежит вперёд и мы должны успевать за ним. Статичные сайты остались где-то далеко позади, возможно, через какое-то время устареет и ajax, придёт эпоха web sockets во всех браузерах и настанет всеобщее счастье, утопия, конечно… Сегодня я хочу представить вам сервис, который позволит с минимальными усилиями внедрить на ваш сайт элемент полной интерактивности. Вы хотели бы отправлять информацию клиентам не тогда, когда попросит пользователь или сработает таймер в js, а тогда, когда это нужно серверу, при этом ограничившись минимальным количеством кода и без использования ajax? Тогда сервис Post Hawk для вас!

Небольшое описание


Основная задача сервиса — передача ваших сообщений между пользователями сайта, т.е вы говорите кому отправить сообщение, сервис делает это. На клиентской стороне коммуникация осуществляется за счёт web sockets, на серверной — за счёт curl либо sockets. Вы можете инициировать процесс отправки сообщения со стороны бэкенда при наступлении какого-то события, например, кто-то добавил комментарий к посту и нужно, чтобы он появился у всех подключенных клиентов, для этого достаточно одного вызова апи. Одной из самых сложных задач было сделать его простым и понятным, не требующим полдня на вникание и еще неделю на прикручивание. Пока оно доступно только для php и js, впрочем, его реализация для других языков не потребует много времени. Код открыт и находится здесь.

Как происходит процесс?


Всё просто. Вы регистрируетесь в сервисе, добавляете домен(ы) с которого (ых) будут пересылаться сообщения, подключаете один класс на серверной стороне, одну крошечную библиотеку на клиентской и подписываетесь на события. Библиотеки здесь. Ну а дальше делаете с пришедшими сообщениями всё, что хотите.

Пример простейшего класса чата с использованием сервиса приложен к библиотеке и умещается всего в 150 строк кода. На основе этого класса реализован чат на сайте сервиса. В этой статье не буду приводить код взаимодействия с апи, эта информация изложена в соответствующем разделе сайта.

Что под капотом?


Сам сервис написан на, идеально подходящем для такой задачи, Erlang/OTP в качестве хранилища данных используется mongodb. Замена кода без остановки сервера, масштабируемость «из коробки», простая работа с бинарными данными и еще много всего «вкусного», кому интересно поищите статьи про Erlang на Хабре.

В чём преимущества?


Самое главное — это то, что ничего не нужно ставить на сервер, в отличие от, например, RabbitMQ, т.е. работать будет даже на слабых хостингах. Не нужно писать велосипеды для поддержки коммуникации с сервером. Всё элементарно просто.

В чём недостатки?


Технология web sockets поддерживается только современными браузерами, в мыслях есть желание сделать поддержку и для старых, но на это нет времени. Пока не поддерживается протокол wss, но он есть в планах. Так как сервис не сохраняет и никак не обрабатывает проходящие через него сообщения, эта забота ложится на плечи разработчика. Не хватает некоторых методов апи, например, сообщения с сервера можно отправлять только группам пользователей, но нельзя просто всем.

Немного о конфиденциальности.


Сервис не сохраняет ваши сообщения. Если вы боитесь за сохранность пересылаемых данных, можете воспользоваться любой библиотекой шифрования, как на клиенте (несколько библиотек), так и на сервере (например, mcrypt) в любом случае сервису ваши сообщения не нужны. Фиксируется только сам факт передачи для сбора статистики. Планируется доработать клиентскую библиотеку для поддержки шифрования «из коробки».

Сколько стоит?


Пока — бесплатно. Сервис находится в стадии бэты и каких-то ограничений не планируется.

Наша миссия


Сервис не ставит задачу обогатить своих создателей. В какой-то момент я понял, зачем я это делаю, и появилась еще одна цель — помочь, детям, которые в этом нуждаются, путём перечисления денег в соответствующие фонды и адресной помощи. Откуда это пришло, сложно сказать, но с того момента, как я её перед собой поставил, процесс пошёл гораздо легче. Пока нет юр. лица, да и не известно нужно ли оно будет, на сайте есть скрипт для доната через Яндекс.Деньги и номера кошельков web money. Чуть позже сделаю страницу с отчётами о переведённых средствах (если будет о чём отчитываться).

Благодарю за внимание!
Надеюсь, получилось что-то полезное. Буду рад любой конструктивной критике и предложениям.
Tags:
Hubs:
Total votes 14: ↑7 and ↓70
Comments19

Articles

Information

Website
post-hawk.com
Registered
Founded
Employees
1 employee (me only)
Location
Россия