Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript (Дмитрий Котеров)
Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next
Author Message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Sat Oct 20, 2012 4:13 pm (написано за 7 минут 7 секунд)
   Post subject:
Reply with quote

Столкнулся еще с одной проблемой. Проблема инактива. Сделан чат, всё работает отлично. Но если бездействовать некоторое время(например час), а затем отправить сообщение, то оно не обновится. Вернее обновится. но с задержкой примерно в минуту. Можно отправлять хоть сотни сообщений в это время. Они в итоге все появятся, но через минуту. На сервере будто ставится пауза при таком вот инактиве. У меня РПЛ используется и для приватных сообщений. То есть общаются себе 2 юзера. Обсудили фильм, пошли смотреть. Посмотрели, вернулись. Пишут "Кстати норм фильм. Согласен?". На экране ничего не происходит. И начинают спамить, думая, что чат сломался. Однако весь этот спам приходит потом пачкой.
Так вот, в чем проблема? Если это не глюк, а запланированная "пауза" сервера, то можно ли какой-то callback на это поставить? Т.е. как только сервер паузится, юзеру поступает инфа и... Ну например появляется сообщение "Вы слишком долго отсуствовали." и ссылка "Я вернулся", на которой будет висеть execute.
Извиняюсь, если обсуждалось, но вроде не нашел.
PS Кстати пауза наступает у всех юзеров. Но как только кто-то отправит сообщение, то это будит соединение у всех юзеров
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Wed Oct 24, 2012 6:00 pm (спустя 4 дня 1 час 47 минут; написано за 1 минуту 11 секунд)
   Post subject:
Reply with quote

На случай, если вдруг кто ответит, появился еще 1 вопросик. Можно ли как-то определить, сколько человек слушает тот или иной канал? Через "персональные" каналы не очень удобно. Подсчитать конечно можно, но этих каналов получится слишком много.
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Thu Oct 25, 2012 8:49 pm (спустя 1 день 2 часа 48 минут; написано за 4 минуты 34 секунды)
   Post subject:
Reply with quote

Дико извиняюсь, но снова проблема) Отсуствие подробной документации наверное сказывается. Проблема в слежении за онлайн-каналами. В кроне висит скрипт, который работает 10 мин и запускается каждые 10 мин:
Code (php): скопировать код в буфер обмена
ini_set (www.php.net/ini_set)("display_errors", 1);
ini_set (www.php.net/ini_set)("max_execution_time", 600);
$startedTime = time (www.php.net/time)();
$file = '/var/www/inc/cron_test.txt';
$current = file_get_contents (www.php.net/file_get_contents)($file);
$current .= "CRON STARTED: ".date("d.m.Y H:i:s")."\n";

require_once "rpl_common.php";

$pos = 0;
while (1) {
    foreach ($mpl->cmdWatch($pos, "user_") as $event) {
        $current .= date (www.php.net/date)("d.m.Y H:i:s").": event: $event[event]; id: $event[id]; pos: $event[pos]; microtime:".microtime(4)."\n";
        file_put_contents($file, $current);
        $pos = $event['pos'];
    }
    sleep (www.php.net/sleep)(1);
        if($startedTime+599<time())
                die (www.php.net/die)();
}
Пишет лог просто. Для отладки мне. Вырезка с этого лога(cron_test.txt):
Quote:
CRON STARTED: 25.10.2012 17:30:01
25.10.2012 17:30:01: event: FAKE; id: FAKE; pos: 655; microtime:1351186201.1629
25.10.2012 17:30:52: event: offline; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 658; microtime:1351186252.2445
25.10.2012 17:31:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 664; microtime:1351186282.2884
25.10.2012 17:32:52: event: offline; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 668; microtime:1351186372.425
25.10.2012 17:33:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 670; microtime:1351186402.4705
25.10.2012 17:34:52: event: offline; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 672; microtime:1351186492.6038
25.10.2012 17:35:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 673; microtime:1351186522.6507
25.10.2012 17:36:52: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 677; microtime:1351186612.7846
Юзер просто загрузил страницу, подключился к каналу и ничего не делает. В логе же он то входит в онлайн, то выходит. Конфиг РПЛ стандартный. Особенно 2 последние строки как-то смущают. В чем проблема?
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Thu Nov 01, 2012 2:44 pm (спустя 6 дней 17 часов 54 минуты; написано за 49 секунд)
   Post subject:
Reply with quote

Знаю правила и понимаю, что мне тут никто ничего не должен. Поэтому готов предложить вознаграждение за помочщь(это не запрещено тут?)
Back to top
View user's profile Send private message
pr0tect0r
Заглянувший



Joined: 06 Jun 2012
Posts: 7
Карма: 0
   поощрить/наказать


PostPosted: Thu Nov 01, 2012 2:53 pm (спустя 9 минут; написано за 1 минуту 56 секунд)
   Post subject:
Reply with quote

Попробовал воспроизвести ситуацию у себя.
Настройки стандартные. 5 минут - полет нормальный - ни одного отключения.
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Thu Nov 01, 2012 3:39 pm (спустя 45 минут; написано за 6 минут 22 секунды)
   Post subject:
Reply with quote

Только что понял причину этого. Изначально не смог определить из-за какого-то бага в браузере. У меня в консоле ничего не писалось. Открыл консоль другого браузера и увидел там:
Quote:
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 1) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 2) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 3) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 4) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 5) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 6) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 7) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 8) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 9) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 10) chat.cosanosstra.ru:83
Next query in 10 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 11) chat.cosanosstra.ru:83
Next query in 5500 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 12) chat.cosanosstra.ru:83
Next query in 9000 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 13) chat.cosanosstra.ru:83
Next query in 13500 ms chat.cosanosstra.ru:83
Bounce detected (bounceCount = 14) chat.cosanosstra.ru:83
Next query in 19000 ms
Думаю теперь всё стало на свои места :) Просто копнуть в сторону BOUNCE я не додумался. Да я и не знал, что это, т.к. в конфиге толком не объясняется, что это за "отскоки". Я думал тут что-то криво установлено. В конфиге у меня JS_MAX_BOUNCES=10. Каждые 60 сек. простоя, как я понимаю, идет реконнект. Делей - JS_WAIT_RECONNECT_DELAY=0.01. А вот после этих 10 попыток делей растет. И со временем он будет больше, чем OFFLINE_TIMEOUT(у меня дефолтно 30 сек.). И вот тут и начинается эта суматоха с оффлайн/онлайн. На 8ой странице этой темы товарищ aml дал патч от этого. Отпишу, если сработает. Собственно то обсуждение и натолкнуло меня на мысль о том, что моя консоль мне что-то не договаривает.
А изначально не придал значения всем подобным предыдущим постам. Подумал, что это было давно и уже наверняка всё это исправлено.
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Sun Nov 04, 2012 12:10 pm (спустя 2 дня 20 часов 30 минут; написано за 4 минуты 8 секунд)
   Post subject:
Reply with quote

Вышеуказанную проблему я поборол. Не стал патч ставить, просто засунул в крон скрипт, который каждые 9 минут посылает в канал пустышку. А вот проблему с cmdWatch никак не могу побороть. Не все ивенты оно отображает. Выше давал весь код и лог. Даже в том логе есть кусок:
Quote:
25.10.2012 17:35:22: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 673; microtime:1351186522.6507
25.10.2012 17:36:52: event: online; id: user_12_634b4d52c10e307f43b538b690d2a47a; pos: 677; microtime:1351186612.7846
Т.е. события "offline" нету. Таким образом у меня клиенты зависают в онлайне. Зашел, посмотрел, закрыл браузер и неделю не заходил. А всю эту неделю я там онлайн числюсь и мне пишут. Юзать cmdOnline не советовали даж в документации. Как тут быть? Кто сталкивался и чем закончилось противостояние?
Back to top
View user's profile Send private message
affka
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Nov 12, 2012 7:21 am (спустя 7 дней 19 часов 11 минут; написано за 7 минут 51 секунду)
   Post subject:
Reply with quote

Всем доброго времени суток. Тоже боролся с проблемой BOUNCES и понял почему у всех такая проблема.
Дело в том, что изначально время ожидания ответа (время long pooling'a) в конфигурации стоит как 300 секунд, т.е. целых 5 минут(!)
Но у веб серверов (nginx/apache) по-умолчанию таймаут стоит гораздо меньше (у меня в ngnix стоял таймаут ожидания - минута). Поэтому соединение обрывалось веб сервером, о чём в коде и написано: "This is an unexpected disconnect (bounce).".
Решается следующим образом: либо вы на веб сервере ставите для домена реалплекстора таймаут больше 5-ти минут (именно больше, т.е. лучше с запасом оставить, т.к. в реале соединение будет чуть больше 5-ти минут), либо в настройках реалплекстора ставим WAIT_TIMEOUT = 20, например (20 секунд).
Теперь в логах пишется "Disconnect detected" после каждого соединения, но это ничего не влияет (в коде просто вывод лога в этом месте). По сути само сообщение некорректно, мне кажется. Правильней было бы в этом месте написать о том, что просто сервер вернул пустой результат (т.е. никаких событий не произошло).

Надеюсь, кому-то моё сообщение поможет :)

Если что - обращайтесь, попробую помочь.
Мои контактные данные тут - affka.ru/contacts/
Back to top
affka
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Nov 16, 2012 5:06 am (спустя 3 дня 21 час 44 минуты; написано за 44 секунды)
   Post subject:
Reply with quote

Включил на рутвите debug режим, там тоже если событий не происходит - валится в лог "Disconnect detected".
Теперь точно знаю, что это нормальное поведение :)
Back to top
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Sun Nov 18, 2012 9:48 pm (спустя 2 дня 16 часов 41 минуту; написано за 2 минуты 31 секунду)
   Post subject:
Reply with quote

Решил свою проблему с cmdWatch. Товарищ affka подсказал в чем была проблема, за то ему спасибо.
Проблема была в том, что я не сохранял позицию($pos). И при повторном запуске скрипта позиция получалась через FAKE. Как выяснилось FAKE возвращает позицию последнего события. Поэтому часть событий у меня терялась. Теперь я записываю позицию в файл. Вроде пока всё работает отлично.
Back to top
View user's profile Send private message
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Mon Nov 19, 2012 11:27 pm (спустя 1 день 1 час 39 минут; написано за 4 минуты 13 секунд)
   Post subject: Чат like Facebook
Reply with quote

Добрый день!

Решил использовать Dklab_Realplexor для реализации чата "как на Facebook".
Как должно работать:
- есть список друзей пользователя
- с каждым другом можно открыть окно переписки и общаться вдвоём
- в каждое окно "на двоих" каждый участник может добавить ещё участников в это же окно
- должен быть мониторинг друзей онлайн

Вопрос:
не совсем понял про каналы в Риалплексоре. Исходя из задачи, как должны быть организованы каналы? Нужен один канал или каждое окно сообщений это отдельный канал?
Расскажите пожалуйста как должно быть.
Back to top
View user's profile Send private message
affka
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 1:09 pm (спустя 13 часов 42 минуты; написано за 3 минуты 14 секунд)
   Post subject:
Reply with quote

Добрый день, Demon_id.
Каждое окно чата - это отдельный канал должен быть.
Список онлайн друзей будет мониторить демон, который будет следить каждые 30 секунд, например, за изменениями онлайн пользователей (кто вошёл или вышел), потом перебирать всех друзей каждого онлайн пользователя и рассылать каждому пользователю изменения только по его друзьям.
Каналы имеются в любом комет сервере, на них всё и завязано.
Back to top
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 5:01 pm (спустя 3 часа 51 минуту; написано за 1 минуту 39 секунд)
   Post subject:
Reply with quote

affka wrote:
Каждое окно чата - это отдельный канал должен быть.
а почему не один канал в который передаём ID окна чата и список тех для кого это сообщение? таким образом его прочитают только пользователи из списка и отобразится оно в указанном окне (разговоре)
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 10:52 pm (спустя 5 часов 51 минуту; написано за 4 минуты 29 секунд)
   Post subject:
Reply with quote

Demon_id wrote:
а почему не один канал в который передаём ID окна чата и список тех для кого это сообщение? таким образом его прочитают только пользователи из списка и отобразится оно в указанном окне (разговоре)
Так тоже можно. Если определитесь как быть с айди окна чата. Ведь должна быть возможность открывать его повторно после закрытия браузера и не перепутать с другим. История, я так понимаю, тоже должна отображаться там. Просто я пока не совсем представляю, как это сделать. Но если у Вас идея реализации уже есть, то можно и так. Не пользуюсь фейсбуком просто.
И вопрос слишком глобальный помоему.
Demon_id wrote:
не совсем понял про каналы в Риалплексоре
С каналами то всё просто. Пользователь может подписаться на любой(и даже ручками через исходный код или консоль, поэтому желательно их названия как-то шифровать и ограничивать получетелей. Иначе можно чужую переписку читать). Сервер тоже может отправить что угодно в любой канал. А уже как это использовать... ограничивается лишь Вашей фантазией :)
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 11:06 pm (спустя 13 минут; написано за 7 минут 11 секунд)
   Post subject:
Reply with quote

Я например для личной переписки каналы не регистрировал. Я ни для чего их не регистрировал(т.е. нигде в базе не сохранял названия). У меня функционал похож на ВК. На всех страницах юзер подписан на свой персональный канал, название которого генерируется исходя из айди юзера. Например "user_1_174n6379s19gr7cgb347rg6sn34r6g43". Это
Code (php): скопировать код в буфер обмена
"user_".$userID."_".md5($userID."secretkey")
В него просто передаются обновления для конкретного юзера. Например если ему написал кто-то в приват, то в этот канал просто отправляется массив, который при обработке ставит +1 возле ссылки "Сообщения" и проигрывает звук. А на странице самого чата юзер подключается еще и к каналу "1_23_cnb297rnsg346rms3462rgm2463r". Название этого канала генерируется так:
Code (php): скопировать код в буфер обмена
$user_one_ID."_".$user_two_ID."_".md5($user_one_ID.$user_two_ID."secretkey")
То есть вручную каналы не подберешь, не зная "secretkey", и не сможешь подслушивать.
Back to top
View user's profile Send private message
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 11:35 pm (спустя 29 минут; написано за 1 минуту 13 секунд)
   Post subject:
Reply with quote

advocot wrote:
 А на странице самого чата юзер подключается еще и к каналу "1_23_cnb297rnsg346rms3462rgm2463r".
Всё бы так и было, если б не возможность в чат для двоих добавлять других пользователей.
Кстати, при перезагрузке страницы, как вы узнаёте к какому каналу его подключить: 1_23_... или 23_1_... ?
Back to top
View user's profile Send private message
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 11:41 pm (спустя 6 минут; написано за 4 минуты 42 секунды)
   Post subject:
Reply with quote

Я собираюсь в БД хранить текущие беседы в таком виде: ID_окна_чата, IDs_участников (в виде set поля). Таким образом, при получении сообщения нужно передавать ID беседы. из БД по этому ID вытягивать пользователей которым и отправлять это сообщение опять же с ID чата. Эти пользователи получат сообщение, а благодаря ID чата система будет знать в какую беседу их отобразить.

Задача в том, чтобы придумать как давать идентификаторы беседам. Чтобы система распознавала кто участвует в беседе и нельзя было вести две отдельные беседы с одинаковым набором участников.
Back to top
View user's profile Send private message
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Tue Nov 20, 2012 11:48 pm (спустя 6 минут; написано за 2 минуты 46 секунд)
   Post subject:
Reply with quote

advocot wrote:
А на странице самого чата юзер подключается еще и к каналу "1_23_cnb297rnsg346rms3462rgm2463r".
Или вот ещё. Один пользователь выбирает из списка другого и пишет ему сообщение в открывшемся окне. В это же время, тот другой пользователь делает тоже самое у себя. Первый отправляет сообщение. И тут нужно как то создать канал, чтобы сообщение пришло в уже открытое вторым пользователем. И когда второй отправит сообщение, нужно проверить, нет ли между ними уже созданного канала, чтобы не создавать ещё один паралельный канал.
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Wed Nov 21, 2012 2:40 am (спустя 2 часа 52 минуты; написано за 12 минут 14 секунд)
   Post subject:
Reply with quote

Demon_id wrote:
Кстати, при перезагрузке страницы, как вы узнаёте к какому каналу его подключить: 1_23_... или 23_1_... ?
Ну лично я решил просто меньшее число(айди) ставить первым :)
Demon_id wrote:
Задача в том, чтобы придумать как давать идентификаторы беседам. Чтобы система распознавала кто участвует в беседе и нельзя было вести две отдельные беседы с одинаковым набором участников.
А просто исходя из ID записи в таблице бесед?
Беседой будем называть разговор 3х и более лиц. Как только в обычный приватный разговор 2х лиц добавляется третье - регистрировать беседу со всеми участниками(то есть создаем новую). И теперь уже при отправке сообщений передавать еще и айди беседы. При каждом последующем добавлении юзера в беседу - просто обновлять список участников в базе WHERE id='айди_текущей_беседы'. Сами эти беседы желательно как-то хранить в истории. Как в скайпе. Корректно сделать восстановление пред. разговора при создании новой беседы с теми же участниками, никак у Вас не получится.
Demon_id wrote:
Или вот ещё. Один пользователь выбирает из списка другого и пишет ему сообщение в открывшемся окне. В это же время, тот другой пользователь делает тоже самое у себя. Первый отправляет сообщение. И тут нужно как то создать канал, чтобы сообщение пришло в уже открытое вторым пользователем. И когда второй отправит сообщение, нужно проверить, нет ли между ними уже созданного канала, чтобы не создавать ещё один паралельный канал.
Не вижу смысла в регистрации канала(сохранении его в БД) ради 1х1 привата. Лучше делать по той же логике, как я. А абзацом выше я написал, как превращать это в беседу. Если что, то готов морально помочь в скайпе e-leman

PS Почему SET? Я конечно с мускулом на уровне "привет, пока" разговариваю, но помоему SET тут ничем не поможет.
Back to top
View user's profile Send private message
affka
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Nov 21, 2012 4:46 am (спустя 2 часа 5 минут; написано за 3 минуты 6 секунд)
   Post subject:
Reply with quote

Quote:
Задача в том, чтобы придумать как давать идентификаторы беседам. Чтобы система распознавала кто участвует в беседе и нельзя было вести две отдельные беседы с одинаковым набором участников.
Абстрагируйтесь от тех пользователей, которые там общаются. Беседа - это просто какое-то окно чата с неограниченным списком пользователей, которые туда могут добавляться и удаляться. У групповой беседы нет фиксированного списка пользователей по которому можно судить о чем-либо. У каждого пользователя (в бд) хранятся данные о том, в каких он групповых беседах участвует - по этим данным можно восстанавливать список бесед.
Back to top
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Wed Nov 21, 2012 1:56 pm (спустя 9 часов 10 минут; написано за 31 секунду)
   Post subject:
Reply with quote

advocot wrote:
А просто исходя из ID записи в таблице бесед?
Беседой будем называть разговор 3х и более лиц. Как только в обычный приватный разговор 2х лиц добавляется третье - регистрировать беседу со всеми участниками(то есть создаем новую). И теперь уже при отправке сообщений передавать еще и айди беседы. При каждом последующем добавлении юзера в беседу - просто обновлять список участников в базе WHERE id='айди_текущей_беседы'.
да, сегодня к утру придумал точно такую же схему.
Всем спасибо за обсуждение.
Back to top
View user's profile Send private message
Demon_id
Заглянувший



Joined: 01 Aug 2006
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Wed Nov 21, 2012 2:08 pm (спустя 11 минут; написано за 1 минуту 48 секунд)
   Post subject:
Reply with quote

Прошу прощения. С сетом натупил. Не учёл что варианты его значений нужно определить сразу при создании таблицы.
Back to top
View user's profile Send private message
MemoS77
Заглянувший



Joined: 11 Jan 2013
Posts: 2
Карма: 0
   поощрить/наказать


PostPosted: Fri Jan 11, 2013 1:49 pm (спустя 1 месяц 19 дней 23 часа 40 минут; написано за 12 минут 41 секунду)
   Post subject: RealPlexor
Reply with quote

Добрый день! Пытаюсь разобраться с RealPlexor, возникла проблема с подключением через JS. В Unix не силен. Распишу свои действия детально, что бы легче было найти причину.
Установка прошла без проблем. Для реалплексора на своем VDS создал поддомен: rp.grandgames.net/
В настройках NGINX в секции location/ добавил: proxy_pass 78.108.95.93:8088; (78.108.95.93 - адрес моего сервера. IP у меня только один)
В файле dklab_realplexor.conf изменил следующие параметры:
WAIT_ADDR=78.108.95.93:8088 IN_ADDR=78.108.95.93:10010 ID_BINDINGS_SERVERS=78.108.95.93:11211 JS_WAIT_URI='rp.grandgames.net/'
Для теста создал поддомен: test.grandgames.net
Серверный API вроде как, судя по логам заработал нормально. При выполнении на странице test.grandgames.net/ следующего кода:
<?php
Echo 'Try Send...<br>';
require_once "Realplexor.php";
$rpl = new Dklab_Realplexor(
    "rp.grandgames.net",
    "10010",
    "Test"
);
echo $rpl->send("k1", "Test Message");
echo 'Sended!<br>';
?>
Ошибок не возникает и в лог записывается следующее:
realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: connection opened
realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: read 111 bytes
realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: parsed IDs
realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: added data for [Testk1]
realplexor/dklab_realplexor.conf: IN: 78.108.95.93:47051: DEBUG: connection closed
Т.е. видно что реалплексор работает.
Создал простейший код для теста JS: test.grandgames.net/test.php
В нем подключаю dklab_realplexor.js и после того как создаю объект следующим кодом:
var realplexor = new Dklab_Realplexor(
    "rp.grandgames.net/",
    "test"
);
код дальше не выполняется. Т.е. в конструкторе объекта ошибка возникает. В чем причина?

P.S. Правильно ли я настроил конфигурацию? Нормален ли тот факт, что если в PHP файле (серверное API) я вместо rp.grandgames.net укажу любой свой сайт на этом же IP, реалплексор все равно передаст данные?
Back to top
View user's profile Send private message
volodyahome
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Jan 14, 2013 11:00 am (спустя 2 дня 21 час 11 минут; написано за 37 секунд)
   Post subject:
Reply with quote

Ошибка в том, что реалплекстор не работает с доменами 3 уровня как у вас "Создал простейший код для теста JS: test.grandgames.net/test.php..."
Back to top
MemoS77
Заглянувший



Joined: 11 Jan 2013
Posts: 2
Карма: 0
   поощрить/наказать


PostPosted: Mon Jan 14, 2013 12:59 pm (спустя 1 час 58 минут; написано за 3 минуты 21 секунду)
   Post subject:
Reply with quote

volodyahome wrote:
Ошибка в том, что реалплекстор не работает с доменами 3 уровня как у вас "Создал простейший код для теста JS: test.grandgames.net/test.php..."
Всмысле JS API для реалплексора будет работать только на домене 2-ого уровня? Вряд ли в этом причина, так как PHP код на этом же домене успешно записывает данные в канал.
Back to top
View user's profile Send private message
advocot
Заглянувший



Joined: 10 Oct 2012
Posts: 12
Карма: 1
   поощрить/наказать


PostPosted: Thu Jan 17, 2013 7:20 am (спустя 2 дня 18 часов 20 минут; написано за 53 секунды)
   Post subject:
Reply with quote

MemoS77 wrote:
var realplexor = new Dklab_Realplexor(     "rp.grandgames.net/",     "test" );
Землю забыли?
Code (JavaScript): скопировать код в буфер обмена
var realplexor = new Dklab_Realplexor(
    "http://rp.grandgames.net/",
    "test_" //
);
А возможно еще и с большой буквы придется, т.к. в realplexor.php Вы именно так и поставили. Насчет чувствительности к регистру не уверен.
Back to top
View user's profile Send private message
Spacewalker
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Jan 25, 2013 6:23 pm (спустя 8 дней 11 часов 3 минуты; написано за 5 минут 3 секунды)
   Post subject:
Reply with quote

Господа, есть ли уже нормальная инструкция по настройке и разворачиванию dklab_realplexor на linux?
Ну ничего не могу разобрать в той горе текста, что тут есть. Опыт сконфиживания линукса не очень большой.

Есть комп на линуксе (Linux mint 13 xfce) и тестовая станция на винде. На линукс ставится реалплексор. Судя по логам, оно шевелится и что-то куда-то пишет, как говорят логи. Но выдрать эту инфу ну никак не получается.

Если кому несложно, помогите настроить по-нормальному. Что бы как по грамотному мануалу, а не "сичас докурю и пойду сдавать китайский".

1) Что писать в /etc/hosts на локальном компе и drivers/etc/hosts на другой машине в сети?
2) Как настроить виртуальный хост на локальном компе?
3) Что писать в httpd.conf?
4) Что писать в dklab_realplexor.conf?

Спасибо за помощь и создателю за его работу.
Back to top
Guest






Карма: 388
   поощрить/наказать


PostPosted: Thu Feb 07, 2013 5:18 pm (спустя 12 дней 22 часа 54 минуты; написано за 7 секунд)
   Post subject:
Reply with quote

blog.himic.ru/blog/Perl/39.html
Back to top
NickName
Заглянувший



Joined: 10 Feb 2013
Posts: 2
Карма: 0
   поощрить/наказать


PostPosted: Sun Feb 10, 2013 5:58 pm (спустя 3 дня 39 минут; написано за 2 минуты 10 секунд)
   Post subject:
Reply with quote

Здравствуйте. Помогите победить:
Opera wrote:
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: Dklab_Realplexor_Loader
Error thrown at line 71, column 2 in <anonymous function: Dklab_Realplexor._iframeLoaded>() in host/dklab_realplexor.js:
    th._realplexor = iframe.contentWindow.Dklab_Realplexor_Loader;
FF wrote:
Ошибка: Permission denied to access property 'Dklab_Realplexor_Loader'
Источник: host/dklab_realplexor.js
Строка: 71
Всё работало, вроде ничего относящегося реалплекстору не правил...
Back to top
View user's profile Send private message
Vitechka22
Заглянувший



Joined: 12 Feb 2013
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Tue Feb 12, 2013 7:20 pm (спустя 2 дня 1 час 22 минуты; написано за 8 минут 42 секунды)
   Post subject:
Reply with quote

Всем, доброго времени суток.

Выбираю комет. Рассматриваю варианты Dklab Realplexor VS node.js
По Dklab Realplexor прочитал тут вроде всё.

Буду признателен за внятную консультацию по возникшим вопросам.

1. Проблема загузки CPU на Debian (и не только) решена? Вообще есть ли? Или тут описаны разовые случаи? РуТвит же выдерживает? Это основном смущающий меня момент...
2. Проект жив? Или мертв? Честно. Видел сообщения двухлетней давности, анонс грядущих не только PHP API. Нужен для Perl
3. По архитектуре. (тут я не особо силен, ногами больно не бейте)

    Я правильно понимаю, что нужен
    - nginx, c кэшем и побольше (обсуждалось, что иначе большие сообщения теряются)
    - сам комет, ес-но
    - php

PHP юзал только с Apache и года 3 последний раз. Сейчас в основном ModPerl, связка nginx для статики, Apache для динамики.
Как php в связке с nginx ставиться и потом используется???

4. Вопрос про unsubcribe. Вроде обсуждалась проблема, что этот метод зануляет call back функцию, но http не рвет, в результате куча ругани в логе.

В остальном плексор меня именно простотой и русским языком привлекает :)


P.S. 2-3 тыщи каналов я так понимаю не проблема. Интерисует создание "говорилки" аля как в Одноклассниках
Back to top
View user's profile Send private message
kaizer15
Заглянувший



Joined: 19 Feb 2013
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Tue Feb 19, 2013 10:30 pm (спустя 7 дней 3 часа 9 минут; написано за 2 минуты 54 секунды)
   Post subject: Установка realplexor
Reply with quote

Извините меня ребята и сильно не ругайте....
Не могу разобраться с установкой....Вроде по инструкции все.....но.....((((
Есть ли у кого возможность помочь поставить его.... пошагово и или через аську или лс и т.п. напишите пожалуйста.

И еще, нужно обязательно на поддомен файлы из папки demo копировать?
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue Feb 19, 2013 11:22 pm (спустя 51 минуту; написано за 6 минут 29 секунд)
   Post subject:
Reply with quote

1. Поставили админы, сервер на colocation
2. Настроил nginx + Apache + PHP все тип-топ.
Тут кстати возник вопрос?
есть mysite.com к нему теперь comet.mysite.com

имеет ли смысл на вызовы PHP и самого realplexor'a ставить такое
Code (Apache config): скопировать код в буфер обмена
        location / {

       valid_referers blocked server_names ~.*mysite\.com.*;
       if ($invalid_referer) {
               rewrite ^(.*)$ /404.html;
                       }

                proxy_pass http://127.0.0.1:8096;
        }
и для PHP
Code (Apache config): скопировать код в буфер обмена
        location ~ ^/php/.*$ {

       valid_referers blocked server_names ~.*mysite\.com.*;
       if ($invalid_referer) {
               rewrite ^(.*)$ /404.html;
                               }

        include /etc/nginx/proxy.inc;
                proxy_pass   http://127.0.0.1:8095;
        }
т.е. чтоб исключить левые запросы ( а вдруг )

3. Настроил $CONFIG{WAIT_TIMEOUT} = 60; # must be less than nginx.conf keepalive_timeout 65;
тут это обсуждалось
4. Занимаюсь автотестами. Ща шуршат клиентские. Напишу о результат. Это нормально, что они долго крутятся???
Back to top
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue Feb 19, 2013 11:25 pm (спустя 3 минуты; написано за 40 секунд)
   Post subject:
Reply with quote

Жалко, что форум умер... хорошая фишка. Но колупаццо теперь во всем самому...
Back to top
Vitechka22
Заглянувший



Joined: 12 Feb 2013
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Tue Feb 19, 2013 11:27 pm (спустя 1 минуту 33 секунды; написано за 35 секунд)
   Post subject:
Reply with quote

Последние 2 сообщения мои. Даже не обратил внимания, что незареген...
Back to top
View user's profile Send private message
Vitechka22
Заглянувший



Joined: 12 Feb 2013
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Tue Feb 19, 2013 11:31 pm (спустя 4 минуты; написано за 27 секунд)
   Post subject:
Reply with quote

Все тесты FAILED (((((((

All tests are finished!
Results are saved for later analyze.

И где смотреть результаты?????
Back to top
View user's profile Send private message
Vitechka22
Заглянувший



Joined: 12 Feb 2013
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Tue Feb 19, 2013 11:34 pm (спустя 2 минуты; написано за 10 секунд)
   Post subject:
Reply with quote

Testing 0100_success.jst... ERROR
Testing 0101_no_request_if_no_subscribes.jst... ERROR
Testing 0102_success_ns.jst... ERROR
Testing 0103_success_ns_login.jst... ERROR
Testing 0105_setpos.jst... ERROR
Testing 0110_abort_not_bounce.jst... ERROR
Testing 0110_error_skip_ok.jst... ERROR
Testing 0120_error_incomplete_resp.jst... ERROR
Testing 0120_js_error_is_not_bounce.jst... ERROR
Testing 0130_disconnect_no_warn.jst... ERROR
Testing 0140_long_ids_list.jst... ERROR
Testing 0200_eval_error.jst... ERROR
Testing 0200_subscribe_same_callback.jst... ERROR
Testing 0210_no_req_if_execute_in_callback.jst... ERROR
Testing 0300_unsubscribe.jst... ERROR

All tests are finished!
Results are saved for later analyze.

ГДЕ ЛОГИ????
Back to top
View user's profile Send private message
Vitechka22
Заглянувший



Joined: 12 Feb 2013
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Wed Feb 20, 2013 12:31 am (спустя 57 минут; написано за 43 секунды)
   Post subject:
Reply with quote

Ура!!!

Testing 0100_success.jst... SUCCESS
Testing 0101_no_request_if_no_subscribes.jst... SUCCESS
Testing 0102_success_ns.jst... SUCCESS
Testing 0103_success_ns_login.jst... SUCCESS
Testing 0105_setpos.jst... SUCCESS
Testing 0110_abort_not_bounce.jst... SUCCESS
Testing 0110_error_skip_ok.jst... SUCCESS
Testing 0120_error_incomplete_resp.jst... SUCCESS
Testing 0120_js_error_is_not_bounce.jst... SUCCESS
Testing 0130_disconnect_no_warn.jst... SUCCESS
Testing 0140_long_ids_list.jst... SUCCESS
Testing 0200_eval_error.jst... SUCCESS
Testing 0200_subscribe_same_callback.jst... SUCCESS
Testing 0210_no_req_if_execute_in_callback.jst... SUCCESS
Testing 0300_unsubscribe.jst... SUCCESS

Осталось победить серверные сесты и мона приступать к самому вкусному :)))
Back to top
View user's profile Send private message
Vitechka22
Заглянувший



Joined: 12 Feb 2013
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Wed Feb 20, 2013 12:36 am (спустя 4 минуты; написано за 1 минуту 3 секунды)
   Post subject:
Reply with quote

Сам RealPlexor должен быть из под root'a запущен?

Серверные тесты тоже только из под рута?
Back to top
View user's profile Send private message
NickName
Заглянувший



Joined: 10 Feb 2013
Posts: 2
Карма: 0
   поощрить/наказать


PostPosted: Sun Feb 24, 2013 9:31 pm (спустя 4 дня 20 часов 55 минут; написано за 4 минуты 58 секунд)
   Post subject:
Reply with quote

NickName wrote:
Здравствуйте. Помогите победить:
Opera wrote:
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: Dklab_Realplexor_Loader
Error thrown at line 71, column 2 in <anonymous function: Dklab_Realplexor._iframeLoaded>() in host/dklab_realplexor.js:
    th._realplexor = iframe.contentWindow.Dklab_Realplexor_Loader;
FF wrote:
Ошибка: Permission denied to access property 'Dklab_Realplexor_Loader'
Источник: host/dklab_realplexor.js
Строка: 71
Всё работало, вроде ничего относящегося реалплекстору не правил...
Разобрался! айфрэйм обрезанный приходил, конца кода не было
По запросу типа realtime.rutwit.ru/?1361729854?identifier=IFRAME&HOST=rutwit.ru&version=1.32 код обрывался на:
Code (JavaScript): скопировать код в буфер обмена
.....
        execute: function(callbacks, callAndReturnException, namespace) {
                var th = this;
                window.onunload = function() {
                        // This is for IE7: it does not abort the connection on unload
                        // and reaches the connection limit.
                        try {
                                if (th._lastXmlhttp) {
                                        th._lastXmlhttp.onreadyst
Видимо фиксированное кол-во байт отдаётся на запрос. Не стал разбираться с этим, вырезал комментарии и код влез. Всё работает.
Буду признателен если кто-то подскажет почему IFRAME_FILE => "dklab_realplexor.html", отдаётся не целиком.
Back to top
View user's profile Send private message
affka
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Feb 28, 2013 11:44 am (спустя 3 дня 14 часов 12 минут; написано за 3 минуты 39 секунд)
   Post subject:
Reply with quote

2Vitechka22:

> 1. Проблема загузки CPU на Debian (и не только) решена? Вообще есть ли? Или тут описаны разовые случаи? РуТвит же выдерживает? Это основном смущающий меня момент...
Есть ещё с++ версия, рутвит скорее всего на ней и живет. В С++ версии вроде проблем нет с загрузкой cpu. На своём проекте у меня стоит perl версия, переодически сервер начинает лагать, но пока не могу точно сказать что это реалплекстор, хотя он несомненно под сомнением..
2. Проект жив? Или мертв? Честно. Видел сообщения двухлетней давности, анонс грядущих не только PHP API. Нужен для Perl
Судя по форуму и коммитам - скорее мёртв.


>Рассматриваю варианты Dklab Realplexor VS node.js
Реалплекстор, конечно, быстрее запустится, но много времени можно потерять на всплывающих подводных камнях.
Если есть нормальные знания javascript, то лучше nodejs выбери.
Nodejs будет проще допилить или исправить, код то свой.
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next
Page 10 of 11    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

Но если не поверите и все же попытаетесь - как только увидите, что все безрезультатно, удалите свой пост, пожалуйста. Модераторы тоже люди, нехорошо, если они погрязнут в тоннах спама.
     

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML