Здравствуй, %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. Чуть позже сделаю страницу с отчётами о переведённых средствах (если будет о чём отчитываться).
Благодарю за внимание!
Надеюсь, получилось что-то полезное. Буду рад любой конструктивной критике и предложениям.
Время бежит вперёд и мы должны успевать за ним. Статичные сайты остались где-то далеко позади, возможно, через какое-то время устареет и 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. Чуть позже сделаю страницу с отчётами о переведённых средствах (если будет о чём отчитываться).
Благодарю за внимание!
Надеюсь, получилось что-то полезное. Буду рад любой конструктивной критике и предложениям.