Comments 34
Статья хорошая, спасибо.
Но, какой классный у вас проект! Блин, однозначно в закладки.
Но, какой классный у вас проект! Блин, однозначно в закладки.
Да еще и к названию с юмором подошли.
Интересует какие технологии используете на сервеной стороне? Программный язык, база данных?
Нашел в прошлой статье: PHP, MySQL.
Интересует какие технологии используете на сервеной стороне? Программный язык, база данных?
Нашел в прошлой статье: PHP, MySQL.
Если интересно, почему трудно обследовать сайт? ru.cackle.me/about
UFO just landed and posted this here
Я правильно понимаю, что в реальных условиях у вас URL для получения событий это не
а что-то посложнее, a-la
http://stream.example.com/sub/1 http://stream.example.com/sub/2
а что-то посложнее, a-la
http://stream.example.com/sub/njnnjnOIUIn8NUInYUG56 http://stream.example.com/sub/bnYUBn789nbn8N90?
Все зависит от того, какой идентификатор подписчика выбрать. Если хочется просто, то цифры вполне подойдут, если что-то сложнее + небольшая защита от ботов, то njnnjnOIUIn8NUInYUG56, bnYUBn789nbn8N90 — будет лучше.
Ну, я к тому, что простые последовательные числовые идентификаторы можно перебрать и читать данные других юзеров…
У вас 1 сервер справляется?
почему не вебсокеты?
Не все версии браузеров поддерживают, пруфлинк caniuse.com/websockets
А можно вопрос? Я, вот, например, не слышал про PUSH-модуль, который озвучен в статье, но делаю билды NgX с вот этим: pushmodule.slact.net/
Он, разве, не подойдёт? :)
Он, разве, не подойдёт? :)
Как и коллеги из Cackle, мы в Битрикс24 тоже использует данный сервер очередей в продакшене, хорошее решение.
Недавно прикручивали real-time, но с использованием nginx http push module и jquery. Подобного руководства не хватало. Вопрос: при такой логике
не возникает проблем когда время на клиенте не совпадает с серверным?
if ($this.time === null) { $this.time = $this.dateToUTCString(new Date()); }
не возникает проблем когда время на клиенте не совпадает с серверным?
Не совсем понимаю, в action вы ещё раз запускаете poll? readyState меняется один раз, когда документ (сообщение) загружен целиком. После чего надо запускать новый xhr, вы так и делаете?
Чем не устраивает chunked? Есть вот такой вот вариант, использующий onprogress, и не требующий установления повторного соединения после получения каких-либо сообщений.
Чем не устраивает chunked? Есть вот такой вот вариант, использующий onprogress, и не требующий установления повторного соединения после получения каких-либо сообщений.
А каким образом реализована возможность защиты канала, т.е. чтобы левые пользователи не могли подписаться на прослушивание канала?
Возможно несколько наивный вопрос, я в этом абсолютный дилетант. Правильно ли я понимаю, что через каждые 25 секунд коннект рвется и заново инициируется скриптом?
У вас в конфиге push_stream_last_received_message_tag и push_stream_last_received_message_time, а в яваскрипте вы все равно хедерами пользуетесь. зачем тогда эти строчки?
А вы уже использовали какую-нибудь версию из ветки 0.4.х? Если да, то как впечатления?
Пока что нет, сейчас используем стабильную 0.3.5.
А вообще 0.4.х очень ждем из-за встроенной поддержки балансера.
А вообще 0.4.х очень ждем из-за встроенной поддержки балансера.
Как мне объяснил автор, текущая 0.4.x чуть ли не стабильнее, чем 0.3.5. Также в 0.4.x есть новые приятные плюшки, поэтому мы сразу стали внедрять ее. Чуть попозже проапгрэйдимся до релиза 0.4.0.
Вчера гоняли 0.4.х с помощью jmeter, 10к соединений оно держит без проблем.
Вчера гоняли 0.4.х с помощью jmeter, 10к соединений оно держит без проблем.
Sign up to leave a comment.
Long Polling от А до Я своими руками