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

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





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


PostPosted: Sun Mar 03, 2013 5:43 pm (написано за 40 секунд)
   Post subject:
Reply with quote

Здравствуйте, такая проблема вот с RealPlexor. И вот не хочет прямо браузер что-то работать с ним.
Unsafe JavaScript attempt to access frame with URL rpl.bastionline.com/?0?identifier=IFRAME&HOST=bastionline.com&version=1.32 from frame with URL bastionline.com/fr_ids.php?. The frame requesting access set 'document.domain' to 'bastionline.com', but the frame being accessed did not. Both must set 'document.domain' to the same value to allow access.
Back to top
Guest






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


PostPosted: Sun Mar 03, 2013 5:55 pm (спустя 12 минут; написано за 8 минут 55 секунд)
   Post subject:
Reply with quote

Сухой остаток

настрил realplexor + nginx + Apache(c PHP) - на поддомене comet.site.com

несколько дней на написание ленты активности по сайту.
При этом сам сайт на perl (используется mod perl + Apache за nginx )
https://github.com/DmitryKoterov/dklab_realplexor/ тут был найден перловый модуль. Чутка допилен + написана обертка к нему, чтоб не париться с коннектами и курсорами. В итоге Apache c PHP на поддомене просто вырубил за ненадобностью, хотя он вначале пригодился. Клиентские тесты гонял именно на нем.

CPU грузит 1-3%, правда бывают какие тики в топе видно до 20-25%, хз с чем связано, т.к. нагрузка на realplexor небольшая....

Насчет node.js + soicket.io думал изначально, но подкупило то, что все достаточно просто, понятно, а следовательно быстро.
Back to top
Paradoks
Guest





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


PostPosted: Fri Mar 15, 2013 12:07 pm (спустя 11 дней 18 часов 12 минут; написано за 4 секунды)
   Post subject: Отслеживание онлайн-статуса пользователя через Realplexor
Reply with quote

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

Для этого мы с некоторой периодичностью вызываем cmdWatch() и на основании полученной информации выполняем изменения флага isOnline в БД.

Возник следующий вопрос: если в какой-то момент Realplexor падает (например, перезагружается машина, на которой он размещен - такое изредка случается), то мы не можем отследить изменения статусов, произошедшие за время его недоступности. По-крайней мере, после перезапуска все выглядит так, что отслеживание онлайн-каналов начинается заново. В результате пользователи, которые ушли с сайта во время недоступности Realplexor, продолжают висеть в состоянии "онлайн" вечно.

Возможно, есть решение данной проблемы? Хотелось бы получить консультацию по этому вопросу.
Back to top
mikhailk
Guest





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


PostPosted: Sat Mar 30, 2013 10:54 am (спустя 14 дней 22 часа 47 минут; написано за 3 минуты 4 секунды)
   Post subject:
Reply with quote

При установке на Ubuntu Server 11.04 требуемой библиотеки столкнулся с неразрешимой проблемой:

perl -MCPAN -e "install EV"

останавливается из-за ошибки:

Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
Warning (usually harmless): 'YAML' not installed, will not store persistent state
  MLEHMANN/EV-4.15.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Could not read '/root/.cpan/build/EV-4.15-pk85Se/META.yml'. Falling back to other methods to determine prerequisites

Как я понял, проблема как раз здесь:
No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]

Однако, чтение нагугленного показало, что каждый раз эта проблема решалась локально, в зависимости от того, что именно ставилось.
Никто не сталкивался с этим при установке Realplexor'ра?
Back to top
Guest






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


PostPosted: Tue Apr 16, 2013 8:10 pm (спустя 17 дней 9 часов 15 минут; написано за 3 секунды)
   Post subject:
Reply with quote

yum install perl-CPAN
yum install perl-YAML
perl -MCPAN -e "install common::sense"
perl -MCPAN -e "install EV"
Back to top
Guest






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


PostPosted: Fri Jun 07, 2013 4:42 pm (спустя 1 месяц 20 дней 20 часов 32 минуты; написано за 7 секунд)
   Post subject:
Reply with quote

Code (any language): скопировать код в буфер обмена
perl -MCPAN -e "install EV"
Reading '/root/.cpan/Metadata'
  Database was generated on Fri, 07 Jun 2013 02:29:02 GMT
EV is up to date (4.15).
версия не подходит?
Back to top
андрейй
Guest





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


PostPosted: Tue Jun 11, 2013 5:20 pm (спустя 4 дня 37 минут; написано за 1 минуту 59 секунд)
   Post subject:
Reply with quote

использую реалплексор на нагруженном проекте.
когда выполняю команду cmdOnline, получаю такую ошибку:

Fatal error: Uncaught exception 'Realplexor_Exception' with message 'Response length (56421) is different than specified in Content-Length header (77807): possibly broken response

пробывал отправлять команду online через телнет, получаю оборваный ответы, тоесть явно проблема с сервером.

в чем может быть проблема?
Back to top
Serg_911
Guest





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


PostPosted: Mon Jul 08, 2013 5:38 pm (спустя 27 дней 17 минут; написано за 55 секунд)
   Post subject:
Reply with quote

помогите плиз разобраться:
- куда сохраняются сообщения каналов?
- и возможно ли удаление выборочного сообщения?
Back to top
Serg_911
Guest





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


PostPosted: Mon Jul 08, 2013 5:50 pm (спустя 11 минут; написано за 11 минут 32 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
1. Нет. Буфер канала - не для того, чтобы в нем данные накапливать и завязывать за это какую-то логику, а для того, чтобы обеспечить возможность внезапного дисконнекта пользователя + гарантированную доставку сообщений (репликация).
2. Нет, это не предусмотрено.
насколько я понимаю сообщение "складываются" в буфер и при рестарте comet-сервера удаляются из буфера?
Back to top
Demon_id1
Guest





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


PostPosted: Thu Jul 11, 2013 4:08 pm (спустя 2 дня 22 часа 18 минут; написано за 2 минуты 38 секунд)
   Post subject:
Reply with quote

если комет сервер поднят на сабдомене, например rpl.site.com, то
вот эта строчка
Code (JavaScript): скопировать код в буфер обмена
// Allow realplexor's IFRAME to access outer window.
document.domain = host;
переписывает document.domain с site.com на rpl.site.com, после чего все остальные скрипты на сайте, которым нужен document.domain для их iframe'ов начинают работать не правильно.

как исправить проблему?
Back to top
averinbox
Заглянувший



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


PostPosted: Fri Jul 12, 2013 7:50 pm (спустя 1 день 3 часа 41 минуту; написано за 1 минуту 45 секунд)
   Post subject: Fatal error: Uncaught exception 'Dklab_Realplexor_Exception' with message 'No Content-Length header
Reply with quote

Добрый день!
Пытаюсь запустить Dklab_Realplexor. Всё настроил, но при отправке сообщения выскакивает вот такой Exeption:

Fatal error: Uncaught exception 'Dklab_Realplexor_Exception' with message 'No Content-Length header in response headers:

Отправляю вот так:
Code (php): скопировать код в буфер обмена
error_reporting (www.php.net/error_reporting)(E_ALL);
ini_set (www.php.net/ini_set)('display_errors', 1);

require_once "./api/php/Dklab/Realplexor.php";
    $rpl = new Dklab_Realplexor(
        "10.37.130.4",
        "8088",
        "nsp_"
    );
       
$rpl->send("Alpha", array (www.php.net/array)(
                "here" => "is",
                "any" => array (www.php.net/array)("structured", "data")
                )
        );
В чём может быть проблема?
Back to top
View user's profile Send private message
averinbox
Заглянувший



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


PostPosted: Mon Jul 15, 2013 11:11 am (спустя 2 дня 15 часов 20 минут; написано за 17 секунд)
   Post subject:
Reply with quote

Я так понимаю, что никто не ответит ((
Back to top
View user's profile Send private message
Burikov Sergey
Guest





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


PostPosted: Fri Jul 19, 2013 5:16 pm (спустя 4 дня 6 часов 5 минут; написано за 10 минут 12 секунд)
   Post subject: Автотесты
Reply with quote

Добрый день дамы и господа.
В первую очередь хочу выразить благодарность за данный продукт, полезен во всех смыслах этого слова.
Установил почти без проблем, проверяли пример из демо - работает на 99%. Не работает только сохранение контента после рефреша страницы (ну это я так понимаю решается путем добавления курсоров).
На данный момент требуется реализовать "Who is online" и "Переписка аля ВК", второе в первую очередь. Так вот, прежде чем приступать к коддингу решил всетаки пробежаться по коду автотестами и..., удивлению не было предела - ни один автотест не прошел, все FIAL =(
Ошибка следующего вида -
Code (Bash): скопировать код в буфер обмена
Failed loading xcache.so:  xcache.so: cannot open shared object file:...
Инглиш знаю, читать умею, phpinfo() показывает наличие xcache на веб-сервере, конфиг такой: nginx + php-fcgi (апач выкинули за ненадобностью).
Собственно запускаю автотесты так же как и написано в мане (/opt/dklab_realplexor/***/***), откуда он пытается взять xcache я так и не понял (пробовал кидать xcache.so рядом в run_all.sh).
API php PERL.
Заранее спасибо за помощь.
P.S. Вроде описал всё, если инфы мало, говорите, дам всё что нужно.
Back to top
REDNES
Guest





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


PostPosted: Tue Aug 20, 2013 2:18 pm (спустя 1 месяц 21 час 2 минуты; написано за 2 минуты 44 секунды)
   Post subject:
Reply with quote

Приветствую всех, подскажите пожалуйста, есть ли АПИ команд которые можно и нужно слать? Дело в том что с примерами и работой в веб интерфейсе никаких проблем нет, но появилась необходимость написать клиента под Qt, подключится по Tcp проблем нет, а вот что слать серверу, как подписаться на канал итд? Может есть где-то примеры на каком-то десктопном языке программировая? Спасибо за помощь!
Back to top
Guest






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


PostPosted: Wed Sep 11, 2013 7:38 pm (спустя 22 дня 5 часов 19 минут; написано за 2 минуты 11 секунд)
   Post subject:
Reply with quote

Добрый день,
заинтересовался данным проектом,
скачал, установил на ОС Debian 7.
все запустил.

страница просмотра результатов chaе.ru
страница comet coment.chaе.ru


PHP скрипт - отправляет сообщения - все нормально.
вот такая проблема - только 3 сообщения могу получить, и больше никак - только перезагрузка серверной части помогает.

кто то может помочь с этим вопросом?
Back to top
den68
Заглянувший



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


PostPosted: Mon Nov 18, 2013 4:23 am (спустя 2 месяца 6 дней 8 часов 45 минут; написано за 1 минуту 23 секунды)
   Post subject:
Reply with quote

Не собирается C++ версия ...
может какую спецефическую версию boost библиотеки надо ?....
Code (any language): скопировать код в буфер обмена
./Make.sh
In file included from dklab_realplexor.cpp:71:
utils/misc.h: In function 'void die(std::string)':
utils/misc.h:83: error: expected primary-expression before '[' token
compilation terminated due to -Wfatal-errors.
или с gcc 4.6.4
Code (any language): скопировать код в буфер обмена
./Make.sh
In file included from dklab_realplexor.cpp:71:0:
utils/misc.h: In function 'void die(std::string)':
utils/misc.h:83:76: error: no matching function for call to 'regex_replace(std::string&, boost::regex, die(std::string)::<lambda(boost::smatch)>)'
compilation terminated due to -Wfatal-errors.
???
Back to top
View user's profile Send private message
n00p
Заглянувший



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


PostPosted: Mon Dec 30, 2013 1:35 pm (спустя 1 месяц 12 дней 9 часов 11 минут; написано за 1 минуту 50 секунд)
   Post subject:
Reply with quote

Здравствуйте.

Есть тут кто-нибудь еще? У меня вопрос по параметру JS_MAX_BOUNCES. По умолчанию, он равен 10. Я пытаюсь увеличить это значение, выставляю в dklab_realplexor.conf 100, 200, 1000 — без разницы, конфиг просто игнорируется и всегда после 10 bounces увеличивается таймаут между запросами.

Кто-нибудь решал эту проблему?
Back to top
View user's profile Send private message
IOI
Guest





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


PostPosted: Sat Aug 30, 2014 11:10 am (спустя 7 месяцев 30 дней 21 час 35 минут; написано за 3 минуты 27 секунд)
   Post subject: XMLHttpRequest security policy и домен в зоне .сайт
Reply with quote

Nginx, Firefox

На соседнем сайте работает все в зоне ru

Ставлю на новый домен http://объявлений.сайт // nginx - все прописал корректно

В консоле вижу следующее :
Quote:
uncaught exception: Due to the standard XMLHttpRequest security policy, hostname in URL passed to Dklab_Realplexor (rpl.xn--90acjmfjpd3i2b.xn--80aswg) must be equals to the current host (>1JO2;5=89.A09B) or be its direct sub-domain.
в nginx - rpl.xn--90acjmfjpd3i2b.xn--80aswg , JS - document.domain = объявлений.сайт .. с консоли вообще - current host (>1JO2;5=89.A09B)

Как побороть можно ?
Back to top
Объявлений.сайт
Guest





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


PostPosted: Sat Aug 30, 2014 3:34 pm (спустя 4 часа 24 минуты; написано за 2 минуты 12 секунд)
   Post subject: Решение для punycode доменов
Reply with quote

Решение

В файле - dklab_realplexor.js в самое начало

добавить код для кодировки в punycode
Code (JavaScript): скопировать код в буфер обмена
// Constructor.
// Create new Dklab_Realplexor object.



;(function(root) {
/** Detect free variables */
var freeExports = typeof exports == 'object' && exports &&
!exports.nodeType && exports;
var freeModule = typeof module == 'object' && module &&
!module.nodeType && module;
var freeGlobal = typeof global == 'object' && global;
if (
freeGlobal.global === freeGlobal ||
freeGlobal.window === freeGlobal ||
freeGlobal.self === freeGlobal
) {
root = freeGlobal;
}
/**
* The `punycode` object.
* @name punycode
* @type Object
*/

var punycode,
/** Highest positive signed 32-bit float value */
maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
/** Bootstring parameters */
base = 36,
tMin = 1,
tMax = 26,
skew = 38,
damp = 700,
initialBias = 72,
initialN = 128, // 0x80
delimiter = '-', // '\x2D'
/** Regular expressions */
regexPunycode = /^xn--/,
regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
/** Error messages */
errors = {
'overflow': 'Overflow: input needs wider integers to process',
'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
'invalid-input': 'Invalid input'
},
/** Convenience shortcuts */
baseMinusTMin = base - tMin,
floor = Math.floor,
stringFromCharCode = String.fromCharCode,
/** Temporary variable */
key;
/*--------------------------------------------------------------------------*/
/**
* A generic error utility function.
* @private
* @param {String} type The error type.
* @returns {Error} Throws a `RangeError` with the applicable error message.
*/

function error(type) {
throw RangeError(errors[type]);
}
/**
* A generic `Array#map` utility function.
* @private
* @param {Array} array The array to iterate over.
* @param {Function} callback The function that gets called for every array
* item.
* @returns {Array} A new array of values returned by the callback function.
*/

function map(array, fn) {
var length = array.length;
var result = [];
while (length--) {
result[length] = fn(array[length]);
}
return result;
}
/**
* A simple `Array#map`-like wrapper to work with domain name strings or email
* addresses.
* @private
* @param {String} domain The domain name or email address.
* @param {Function} callback The function that gets called for every
* character.
* @returns {Array} A new string of characters returned by the callback
* function.
*/

function mapDomain(string, fn) {
var parts = string.split('@');
var result = '';
if (parts.length > 1) {
// In email addresses, only the domain name should be punycoded. Leave
// the local part (i.e. everything up to `@`) intact.
result = parts[0] + '@';
string = parts[1];
}
var labels = string.split(regexSeparators);
var encoded = map(labels, fn).join('.');
return result + encoded;
}
/**
* Creates an array containing the numeric code points of each Unicode
* character in the string. While JavaScript uses UCS-2 internally,
* this function will convert a pair of surrogate halves (each of which
* UCS-2 exposes as separate characters) into a single code point,
* matching UTF-16.
* @see `punycode.ucs2.encode`
* @see <https://mathiasbynens.be/notes/javascript-encoding>
* @memberOf punycode.ucs2
* @name decode
* @param {String} string The Unicode input string (UCS-2).
* @returns {Array} The new array of code points.
*/

function ucs2decode(string) {
var output = [],
counter = 0,
length = string.length,
value,
extra;
while (counter < length) {
value = string.charCodeAt(counter++);
if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
// high surrogate, and there is a next character
extra = string.charCodeAt(counter++);
if ((extra & 0xFC00) == 0xDC00) { // low surrogate
output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
} else {
// unmatched surrogate; only append this code unit, in case the next
// code unit is the high surrogate of a surrogate pair
output.push(value);
counter--;
}
} else {
output.push(value);
}
}
return output;
}
/**
* Creates a string based on an array of numeric code points.
* @see `punycode.ucs2.decode`
* @memberOf punycode.ucs2
* @name encode
* @param {Array} codePoints The array of numeric code points.
* @returns {String} The new Unicode string (UCS-2).
*/

function ucs2encode(array) {
return map(array, function(value) {
var output = '';
if (value > 0xFFFF) {
value -= 0x10000;
output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
value = 0xDC00 | value & 0x3FF;
}
output += stringFromCharCode(value);
return output;
}).join('');
}
/**
* Converts a basic code point into a digit/integer.
* @see `digitToBasic()`
* @private
* @param {Number} codePoint The basic numeric code point value.
* @returns {Number} The numeric value of a basic code point (for use in
* representing integers) in the range `0` to `base - 1`, or `base` if
* the code point does not represent a value.
*/

function basicToDigit(codePoint) {
if (codePoint - 48 < 10) {
return codePoint - 22;
}
if (codePoint - 65 < 26) {
return codePoint - 65;
}
if (codePoint - 97 < 26) {
return codePoint - 97;
}
return base;
}
/**
* Converts a digit/integer into a basic code point.
* @see `basicToDigit()`
* @private
* @param {Number} digit The numeric value of a basic code point.
* @returns {Number} The basic code point whose value (when used for
* representing integers) is `digit`, which needs to be in the range
* `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
* used; else, the lowercase form is used. The behavior is undefined
* if `flag` is non-zero and `digit` has no uppercase form.
*/

function digitToBasic(digit, flag) {
// 0..25 map to ASCII a..z or A..Z
// 26..35 map to ASCII 0..9
return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
}
/**
* Bias adaptation function as per section 3.4 of RFC 3492.
* http://tools.ietf.org/html/rfc3492#section-3.4
* @private
*/

function adapt(delta, numPoints, firstTime) {
var k = 0;
delta = firstTime ? floor(delta / damp) : delta >> 1;
delta += floor(delta / numPoints);
for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
delta = floor(delta / baseMinusTMin);
}
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
}
/**
* Converts a Punycode string of ASCII-only symbols to a string of Unicode
* symbols.
* @memberOf punycode
* @param {String} input The Punycode string of ASCII-only symbols.
* @returns {String} The resulting string of Unicode symbols.
*/

function decode(input) {
// Don't use UCS-2
var output = [],
inputLength = input.length,
out,
i = 0,
n = initialN,
bias = initialBias,
basic,
j,
index,
oldi,
w,
k,
digit,
t,
/** Cached calculation results */
baseMinusT;
// Handle the basic code points: let `basic` be the number of input code
// points before the last delimiter, or `0` if there is none, then copy
// the first basic code points to the output.
basic = input.lastIndexOf(delimiter);
if (basic < 0) {
basic = 0;
}
for (j = 0; j < basic; ++j) {
// if it's not a basic code point
if (input.charCodeAt(j) >= 0x80) {
error('not-basic');
}
output.push(input.charCodeAt(j));
}
// Main decoding loop: start just after the last delimiter if any basic code
// points were copied; start at the beginning otherwise.
for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
// `index` is the index of the next character to be consumed.
// Decode a generalized variable-length integer into `delta`,
// which gets added to `i`. The overflow checking is easier
// if we increase `i` as we go, then subtract off its starting
// value at the end to obtain `delta`.
for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
if (index >= inputLength) {
error('invalid-input');
}
digit = basicToDigit(input.charCodeAt(index++));
if (digit >= base || digit > floor((maxInt - i) / w)) {
error('overflow');
}
i += digit * w;
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
if (digit < t) {
break;
}
baseMinusT = base - t;
if (w > floor(maxInt / baseMinusT)) {
error('overflow');
}
w *= baseMinusT;
}
out = output.length + 1;
bias = adapt(i - oldi, out, oldi == 0);
// `i` was supposed to wrap around from `out` to `0`,
// incrementing `n` each time, so we'll fix that now:
if (floor(i / out) > maxInt - n) {
error('overflow');
}
n += floor(i / out);
i %= out;
// Insert `n` at position `i` of the output
output.splice(i++, 0, n);
}
return ucs2encode(output);
}
/**
* Converts a string of Unicode symbols (e.g. a domain name label) to a
* Punycode string of ASCII-only symbols.
* @memberOf punycode
* @param {String} input The string of Unicode symbols.
* @returns {String} The resulting Punycode string of ASCII-only symbols.
*/

function encode(input) {
var n,
delta,
handledCPCount,
basicLength,
bias,
j,
m,
q,
k,
t,
currentValue,
output = [],
/** `inputLength` will hold the number of code points in `input`. */
inputLength,
/** Cached calculation results */
handledCPCountPlusOne,
baseMinusT,
qMinusT;
// Convert the input in UCS-2 to Unicode
input = ucs2decode(input);
// Cache the length
inputLength = input.length;
// Initialize the state
n = initialN;
delta = 0;
bias = initialBias;
// Handle the basic code points
for (j = 0; j < inputLength; ++j) {
currentValue = input[j];
if (currentValue < 0x80) {
output.push(stringFromCharCode(currentValue));
}
}
handledCPCount = basicLength = output.length;
// `handledCPCount` is the number of code points that have been handled;
// `basicLength` is the number of basic code points.
// Finish the basic string - if it is not empty - with a delimiter
if (basicLength) {
output.push(delimiter);
}
// Main encoding loop:
while (handledCPCount < inputLength) {
// All non-basic code points < n have been handled already. Find the next
// larger one:
for (m = maxInt, j = 0; j < inputLength; ++j) {
currentValue = input[j];
if (currentValue >= n && currentValue < m) {
m = currentValue;
}
}
// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
// but guard against overflow
handledCPCountPlusOne = handledCPCount + 1;
if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
error('overflow');
}
delta += (m - n) * handledCPCountPlusOne;
n = m;
for (j = 0; j < inputLength; ++j) {
currentValue = input[j];
if (currentValue < n && ++delta > maxInt) {
error('overflow');
}
if (currentValue == n) {
// Represent delta as a generalized variable-length integer
for (q = delta, k = base; /* no condition */; k += base) {
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
if (q < t) {
break;
}
qMinusT = q - t;
baseMinusT = base - t;
output.push(
stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
);
q = floor(qMinusT / baseMinusT);
}
output.push(stringFromCharCode(digitToBasic(q, 0)));
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
delta = 0;
++handledCPCount;
}
}
++delta;
++n;
}
return output.join('');
}
/**
* Converts a Punycode string representing a domain name or an email address
* to Unicode. Only the Punycoded parts of the input will be converted, i.e.
* it doesn't matter if you call it on a string that has already been
* converted to Unicode.
* @memberOf punycode
* @param {String} input The Punycoded domain name or email address to
* convert to Unicode.
* @returns {String} The Unicode representation of the given Punycode
* string.
*/

function toUnicode(input) {
return mapDomain(input, function(string) {
return regexPunycode.test(string)
? decode(string.slice(4).toLowerCase())
: string;
});
}
/**
* Converts a Unicode string representing a domain name or an email address to
* Punycode. Only the non-ASCII parts of the domain name will be converted,
* i.e. it doesn't matter if you call it with a domain that's already in
* ASCII.
* @memberOf punycode
* @param {String} input The domain name or email address to convert, as a
* Unicode string.
* @returns {String} The Punycode representation of the given domain name or
* email address.
*/

function toASCII(input) {
return mapDomain(input, function(string) {
return regexNonASCII.test(string)
? 'xn--' + encode(string)
: string;
});
}
/*--------------------------------------------------------------------------*/
/** Define the public API */
punycode = {
/**
* A string representing the current Punycode.js version number.
* @memberOf punycode
* @type String
*/

'version': '1.3.1',
/**
* An object of methods to convert from JavaScript's internal character
* representation (UCS-2) to Unicode code points, and back.
* @see <https://mathiasbynens.be/notes/javascript-encoding>
* @memberOf punycode
* @type Object
*/

'ucs2': {
'decode': ucs2decode,
'encode': ucs2encode
},
'decode': decode,
'encode': encode,
'toASCII': toASCII,
'toUnicode': toUnicode
};
/** Expose `punycode` */
// Some AMD build optimizers, like r.js, check for specific condition patterns
// like the following:
if (
typeof define == 'function' &&
typeof define.amd == 'object' &&
define.amd
) {
define('punycode', function() {
return punycode;
});
} else if (freeExports && freeModule) {
if (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+
freeModule.exports = punycode;
} else { // in Narwhal or RingoJS v0.7.0-
for (key in punycode) {
punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
}
}
} else { // in Rhino or a web browser
root.punycode = punycode;
}
}(this));
а после этого
Code (JavaScript): скопировать код в буфер обмена
function Dklab_Realplexor(fullUrl, namespace, viaDocumentWrite)
{
    // Current JS library version.
    var VERSION = "1.32";

    // Detect current page hostname.
    var host = document.location.host;
вставить вот это
Code (JavaScript): скопировать код в буфер обмена
host =  punycode.toASCII( document.domain ) ;
И всё заработает !
Back to top
gRek
Guest





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


PostPosted: Sun Nov 09, 2014 11:56 pm (спустя 2 месяца 10 дней 8 часов 22 минуты; написано за 2 минуты 29 секунд)
   Post subject: Realplexor, WebSocket
Reply with quote

Дмитрий, в качестве транспорта сообщений Realplexor сейчас использует только IFRAME. Планируете ли вы добавление возможности передачи сообщений через WebSocket?
Back to top
kulibin2010
Заглянувший



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


PostPosted: Sat Jan 10, 2015 11:06 pm (спустя 2 месяца 23 часа 10 минут; написано за 2 минуты 22 секунды)
   Post subject:
Reply with quote

Добрый день! столкнулся с установкой плексора ну вроде разобрался и работает уже а вот сайт не конектится к нему

 Uncaught SecurityError: Failed to set the 'domain' property on 'Document': '"avangardgame.ru' is not a suffix of 'www.avangardgame.ru'.
?identifier=SCRIPT:39 Uncaught Due to the standard XMLHttpRequest security policy, hostname in URL passed to Dklab_Realplexor (rpl.avangardgame.ru:8088) must be equals to the current host (www.avangardgame.ru) or be its direct sub-domain.
Character:251 Uncaught SecurityError: Blocked a frame with origin "www.avangardgame.ru" from accessing a frame with origin "www.avangardgame.ru". The frame requesting access set "document.domain" to "avangardgame.ru", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access.

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



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


PostPosted: Wed Jan 14, 2015 2:47 pm (спустя 3 дня 15 часов 40 минут; написано за 50 секунд)
   Post subject:
Reply with quote

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

Uncaught Dklab_Realplexor constructor argument must be fully-qualified URL, www.avangardgame.ru given.


Uncaught SecurityError: Blocked a frame with origin "www.avangardgame.ru" from accessing a frame with origin "www.avangardgame.ru". The frame requesting access set "document.domain" to "www.avangardgame.ru", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access.
Back to top
View user's profile Send private message
roma2341
Заглянувший



Joined: 26 Oct 2015
Posts: 1
Карма: 0
   поощрить/наказать

Location: UA

PostPosted: Tue Oct 27, 2015 12:06 am (спустя 9 месяцев 12 дней 9 часов 18 минут; написано за 5 минут 38 секунд)
   Post subject:
Reply with quote

Проблема с тестовым примером (PHP), логи:
Code (any language): скопировать код в буфер обмена
2015/10/26 22:55:35 [error] 26310#0: *2 FastCGI sent in stderr: "PHP message: PHP Notice:  Undefined variable: id in /var/www/Realplexor/fr_form.php on line 44
PHP message: PHP Notice:  Undefined variable: i in /var/www/Realplexor/fr_form.php on line 56
PHP message: PHP Notice:  Undefined variable: i in /var/www/Realplexor/fr_form.php on line 56" while reading response header from upstream, client: 127.0.0.1, server: rp.ua, request: "GET /fr_form.php? HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "rp.ua", referrer: "http://rp.ua/"
2015/10/26 22:55:35 [error] 26310#0: *1 FastCGI sent in stderr: "PHP message: PHP Notice:  Undefined variable: mpl in /var/www/Realplexor/fr_ids.php on line 72
PHP message: PHP Fatal error:  Call to a member function cmdOnline() on a non-object in /var/www/Realplexor/fr_ids.php on line 72" while reading response header from upstream, client: 127.0.0.1, server: rp.ua, request: "GET /fr_ids.php? HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "rp.ua", referrer: "http://rp.ua/"
В php новичок, помогите пожалуйста исправить ошибки. Реорганизировал код с помощью echo. Работает...
Back to top
View user's profile Send private message
dumbash
Guest





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


PostPosted: Wed Feb 10, 2016 7:56 am (спустя 3 месяца 14 дней 7 часов 50 минут; написано за 1 минуту 38 секунд)
   Post subject:
Reply with quote

Если кому-то нужна версия без iframe для работы на субдомене
Или есть вопросы по нагрузке (их удалось решить запуском cpp версии),
пишите в вк vk.com/davemodis
Back to top
renya
Заглянувший



Joined: 28 Nov 2016
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Mon Nov 28, 2016 1:56 am (спустя 9 месяцев 17 дней 17 часов 59 минут; написано за 1 минуту 23 секунды)
   Post subject:
Reply with quote

Приветствую, помогите пожалуйста убрать ошибку уже не знаю что делать
Quote:
Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
сперва настроили на один домен, все работало. после решили сменить домен и исполнитель что то сделал так что на новом и уже на старом домене вылазить это ошибка
Back to top
View user's profile Send private message
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
Page 11 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