dklab_realplexor
dklab_realplexor copied to clipboard
проблема с получением сообщений, отправленных одновременно в разные каналы
js:
...
realplexor.subscribe("Alpha", function(data, id) {
document.getElementById('first').innerHTML += data + "
";
});
realplexor.subscribe("Beta", function(data, id) {
document.getElementById('second').innerHTML += data + "
";
});
...
php: .... $rpl->send("Alpha", array("here" => "is", "any" => array("structured", "data"))); $rpl->send("Beta", array("x" => "y", "other" => array("complex", "message"))); ....
После выпонения скрипта, в firebug видно, что по xhr запросу http://rpl.mydomain/?identifier=demo_Alpha,demo_Beta&ncrnd=1339863583432 пришло только одно сообщение (в Alpha). сообщение для Beta не пришло в новом xhr запросе http://rpl.mydomain/?identifier=1339863592.26114014500000:demo_Alpha,demo_Beta&ncrnd=1339863592325.
Далее при одновременной отправке сообщения продолжают приходить только в Alpha. Если отправить запрос только в Beta или вставить sleep(1); между запросами, то сообщение доходит.
После раздельной отправки сообщений любым из способов, начинают приходить одновременно отправленные сообщения. Запросы xhr вида http://rpl.mydomain/?identifier=1339864176.81945016900000:demo_Alpha,1339864177.82348017100000:demo_Beta&ncrnd=1339864237956.
Видно, что в последнем запросе, работающем корректно, обращение к Beta уже идет по ID:Name. Но ID был получен только после раздельной отправки сообщений. При одновременной отправке клиент ID получить не может.
Столкнулись с той же самой проблемой. Хотелось бы узнать, есть ли какое-то решение, кроме установки задержки.
интересно проект еще жив или уже не очень?.. проблема с id есть судя по идентификатору это метка микротайма, и так как сообщения приходят в один момент времени, то и метка у них получается одинаковая. Поковырялся в исходниках, не нашел, где задается id канала. Автор, если для тебя проект еще актуален, поправь пожалуйста этот баг, так как при большой нагрузке и подписке пользователя на некоторое количество каналов задержка даже в полсекунды это много. Согласен есть функционал рассылки сообщений в несколько каналов, но он подходит, если нужно отправить одинаковое сообщение в разные каналы. А если нужно отправить разные сообщения в разные каналы?
автор, ау
В JS нужно проставить курсоры: realplexor.setCursor("Alpha",0); realplexor.setCursor("Beta",0);
Должно помочь.
setCursor делает выборку всего что есть в буфере - это не то. Очень острая проблема! Хэлп!
Версию для C++ пробовали? У меня после перехода на неё куча глюков ушло само собой :)
Вы про клиента? Я бы попробовал но речь идёт о сайте, а также клиенте на андроид, документации как правильно реализовать работу с протоколом я не нашел, всё сугубо копированием поведения JS клиента... :(
Что-то не могу найти документации по установке c++ версии ((
https://github.com/DmitryKoterov/dklab_realplexor/blob/master/cpp/src/Make.sh
Нда... вроде всё просто, но зависимости руками брать откуда-то там... Не получается скомпилить вообщем :( А perl версия уже по 4-6 секунд на push задержки делает под не такой уж и большой нагрузкой... :(
dklab_realplexor.cpp:40:38: fatal error: boost/algorithm/string.hpp: Нет такого файла или каталога compilation terminated.
Вы собирайте в Ubuntu, все должно получиться. Бинарник, кстати, получится без внешних зависимостей - его потом можно копировать на любую машину. Boost лучше собрать из исходников, кстати, но вроде бы по вашему сообщению об ошибке что-то гуглится.
Подтверждаю наличие проблемы с недоставкой второго из единовременно отправляемых сообщений, как описано в сабже. Имеет место и для perl, и для cpp версий.
На словах фикс выглядит так: При отправке клиенту (слушающему 2 и более каналов), отправлять не только данные первого канала с меткой времени, но и метки времени для остальных каналов, которые должны инициализироваться временем установления соединения.
Здравствуйте, это не issue, а скорее вопрос, но не смог подобрать правильного места. Что происходит с комнатами после того, как клиент отсоединился и в ней не осталось больше активных пользователей.
Есть альтернатива http://post-hawk.com и не надо ничего ставить на сервер и настраивать.
Проект забросил автор как я понял из гита и их сайта\форума.. уже пару дней мучаюсь с данным коммет сервером...на дебиане (впс слабой) скомпилировать не получилось ошибка gcc++ process kill чет там... на MAC OS не компилиться из-за ошибки в /events/server.h там есть параметры ::set а мак хочет что бы использовалось template...но кодить на том языке не шарю...юзаю перл версию...но нормальной доки или примеров толковых php не нашел..буду крутиться из того что уже имею.. Slavenin, посмотрел я тот пост-хавк и то совсем не выход...
- отправлять данные через чужой сервер "This is нехорошо"
- не известно как долго проживет тот проект да и уже лучше тогда использовать штатные средства сервера nginx (модули есть) или инные способы
- отправлять данные через чужой сервер "This is нехорошо"
библиотека поддерживает шифрование на клиенте, так что тут проблемы нет
- не известно как долго проживет тот проект
будет жить и развиваться :)
да и уже лучше тогда использовать штатные средства сервера nginx (модули есть) или инные способы
нужно их ставить настраивать и пилить свой велосипед, а здесь уже всё готово.
Вы правы, На вкус и цвет фломастеры все равно одинаковые =) Разобрался с данным плексером, очень радует скорость работы... Но ломаю голову не первый час как интегрировать свой самопис...