Доброго времени суток! Хочу презентовать вам небольшой сервис по передаче личных сообщений.
Практический каждый web-разработчик, рано или поздно сталкивается с пожеланием типа: «Хочу сообщения, как в контакте». В каждом проекте, это означает что-то своё, но как правило, везде присутствует обмен сообщениями между пользователями в реальном времени. И тут начинается веселье…
Появляются на свет разного рода велосипеды и дорабатываются уже существующие, так как вероятность «взять и использовать» готовое решение в неизменном виде стремится к 0. Каждый использует разные подходы для решения этой задачи, кто-то commet-server, кто-то просто polling, ну а кто-то заморочится и напишет socket-сервер с подключением через WebSocket. Все эти варианты имеют право на существование, но на их реализацию тратится солидное время, так как ни один из них нельзя назвать простым.
Все это я проходил. В какой-то момент пришла мысль: «Сколько можно!?» — и я стал думать и подбирать инструменты. Проанализировав, то что удалось найти, для реализации серверной части остановился на Erlang/OTP, который идеально подходил для поставленной задачи. И работа закипела…
В итоге на свет появился сервис Post Hawk. Одной из самых сложных задач было сделать простое и понятное апи, не требующее полдня на вникание и еще неделю на прикручивание. Пока доступно только для php, впрочем, его реализация для других языков не потребует много времени. Код открыт и находится здесь.
Как происходит процесс? Всё просто. Вы регистрируетесь в сервисе, добавляете домен(ы) с которого (ых) будут пересылаться сообщения, подключаете один класс на серверной стороне, одну крошечную библиотеку на клиентской и подписываетесь на события. Библиотеки здесь. Ну а дальше делаете с пришедшими сообщениями всё, что хотите.
Теперь немного о конфиденциальности.
Сервис не сохраняет ваши сообщения. Если вы боитесь за сохранность данных пользователей можете воспользоваться любой библиотекой шифрования, как на клиенте (несколько библиотек), так и на сервере (например, mcrypt) в любом случае сервису ваши сообщения не нужны. Фиксируется только сам факт передачи для сбора статистики. Планируется доработать клиентскую библиотеку для поддержки шифрования «из коробки».
Сколько стоит?
Пока — бесплатно. Сервис находится в стадии бэты и каких-то ограничений не планируется.
Монетизация сервиса будет. Но, тут есть большое НО. Сервис не ставит задачу обогатить своих создателей. В какой-то момент я понял, зачем я это делаю и появилась еще одна цель — помочь, детям, которые в этом нуждаются. Откуда это пришло, сложно сказать, но с того момента, как я её перед собой поставил, процесс пошёл гораздо легче. Пока нет юр. лица, да и не известно нужно ли оно, на сайте есть скрипт для доната через Яндекс.Деньги и номера кошельков web money. Чуть позже сделаю страницу с отчётами о переведённых средствах (если будет о чём отчитываться).
Благодарю за внимание!
Надеюсь, получилось что-то полезное. Буду рад любой конструктивной критике и предложениям.
Есть замечательный инструмент для профайлинга скриптов http://code[dot]google[dot]com/p/webgrind/ работает на основании файлов сформированных xdebug на сайте сказано, что он умеет строить граф вызовов функций. Но вот в самом функционале я этого не нашел. Погуглив нашел, что можно строить эти графики на основании все тех же файлов xdebug с помощью плагина питона gprof2dot.py. Если запускаю из конслоли, все прекрасно работает, запускаю из php первая часть, которая формирует файл работает, а вторая формирует изображение размером в 0 байт.
победа но из разряда "где мой бубен"... Проблема решается путем запуска сервера в отдельном потоке через stream_socket_client с отключенной блокировкой stream_set_blocking( $s, 0 ); в результате сервер запускается в отдельном потоке, скрипт не ждет ответа и удачно завершается, можно слать запросы...
вот бы еще кто-то просветил какого ... нужно серверу без этого шаманства
Всем доброго времени суток!
Написал на php сокет-сервер. Все здорово, все работает... При прямом обращении по нужным адресам.
Дальше начинается "уличная магия"... В том случае, если сервер уже запущен, когда я дергаю его ajax`ом все хорошо. Если же сервер не запущен, то я его запускаю и пробую снова чего-нибудь ему отправить. Он запускается(вижу в логах), но... и это самое странное, даже после принудительного завершения ajax-запроса(на запуск) второй(с сообщением до сервера не доходит)... тупо висит в сетевой активности, такое ощущение, что он встает в некую очередь и ждет завершения скрипта сервера, так как если сервак тормознуть, то запрос выполняется.
Помогите пожалуйста, второй день не могу понять, что происходит...
очень даже как! http://www[dot]ibm[dot]com/developerwork[dot][dot][dot]itask/index[dot]html
но тут есть одно но, если у вас не настроен должным образом сервер и нет прав на управление потоками и процессами, то подходит только вариант с сокетами. Я реализовал себе класс, который у меня шлет записи из одной базы в другую в 20 потоков используя web-сервис. Но в принципе можно слать и делать что угодно
мда, ничего такого они не изобрели, в ответ приходит форма из которой нужно взять ключ и отправить этот ключ обратно сайту... Ответ был на поверхности...
Всем доброго времени суток!
Есть скрипт, который до недавнего времени прекрасно работал и парсил данные о стоимости доставки. НО настал тот самый "прекрасный момент" и на сайте почты изобрели что-то такое, что безошибочно определяет, что на сайт пришел робот... Полная имитация браузера пришедшего с основной страницы не помогает, ибо даже главная страница не открывается. Вместо кода со стоимостью возвращается волшебный код бесконечного редиректа:
собственно сам скрипт (дошел до главной страницы пытаясь получить куки, но в ответе всегда редирект)
Да и еще ОЧЕНЬ ВАЖНЫЙ момент, если зайти на сайт почты через браузер, даже на главную страницу, то потом примерно минут пять десять, скрипт будет работать!!! Потом снова отвалиться. Дело тут не в куках ибо куки у меня пишутся в файл. Если смотреть после открытия страницы смотреть в файлах, то куки пишутся, как только скрипт отваливается, куки пропадают. Мой мозг расплавлен. Что еще можно сделать, чтобы получить страницу? Пробовал по всякому начиная от простого file_get_contents и сокетов, заканчивая курлом, на чем пока и остановился за неимением других идей... Очень надеюсь на вашу помощь...
Всем доброго времени суток.
Есть простая, вроде бы, задача: если в адресе есть слово htdocs, то убрать это слово из адреса, если слова нет, то дополнить им адрес и отобразить страницу.
например, есть адрес site.ru/htdocs/catalog/
в этом случае нужно отобразить страницу htdocs/catalog/ как site.ru/catalog/
если же идет прямое обращение site.ru/catalog/
нужно просто отобразить страницу htdocs/catalog/ без изменения адресной строки
вторую задачу я решил, а вот с первой что-то никак не пойму...
Возникает то 500, то простой редирект на несуществующую страницу. Если же убрать у второго правила L , то возникает бесконечный редирект...
перебиваешь слэш реплэйсом в обратную сторону и получаешь путь к файлу
да нет, ничего перебивать не надо, приведенный выше класс прекрасно работает, достаточно просто положить классы в папки с соответствующими нэймспейсам именами
OrmaJever, я тоже не могу понять почему способ через разрешение пространства имен вызывает ошибку причем он описан и в мануалах, но тем не менее не работает. Как вариант могу предположить, что в последних версиях языка что-то поменяли.
интересное обсуждение идет в комментах на хабре http://habrahabr[dot]ru/blogs/php/72097/