Ключ в настройках модуля push and pull не задан. Bitrix VM 7.3.0. Версия системы 18.0.0
Пытаясь ознакомиться с работой модуля я написал простой скрипт, который отправляет команду "test" из кастомного модуля crto.onetag с сервера на фронт при наступлении событий main::onPageStart.
На фронте пытаюсь поймать это сообщение с помощью
[CODE]BX.addCustomEvent("onPullEvent-crto.onetag", function(command,params) {
console.log('Works! with crto module');
console.log('Command is: ' + command + " comand");
console.log('Parameters are: ' + params + " params");
});[/CODE]
на выходе (в консоли) получаю ожидаемое
[CODE] Works! with crto module
Command is: test comand
Parameters are: 1,2,3 params [/CODE]
Все стандартно и описано в документации. Вопросы:
1. Почему я не могу получить историю сообщений? Согласно [URL=https://github.com/wandenberg/nginx-push-stream-module/blob/master/docs/examples/curl.textile#getting-old-messages]https://github.com/wandenberg/nginx-push-stream-module/blob/master/docs/examples/curl.textile#gettin...[/URL] делаю
[CODE]curl -v -s --no-buffer http://localhost/sub/bd00b95df5b4da2fefb2b90b4c10bcb6/5324e9c91482a7998bbc42c11e4d3e1d.b2[/CODE]где [URL=http://localhost/sub/bd00b95df5b4da2fefb2b90b4c10bcb6/5324e9c91482a7998bbc42c11e4d3e1d.b2]bd00b95df5b4da2fefb2b90b4c10bcb6/5324e9c91482a7998bbc42c11e4d3e1d[/URL] - это ID канала, который я получил из браузера. В ответ получаю HTML документ
Запрос на паблиш curl -s -v -X POST '[URL=http://localhost/bitrix/pub?id=channelA]http://localhost/bitrix/pub?id=channelA[/URL]' -d '1' заканчивается тем же.
2. Не совсем понимаю как происходит вызов функции CPullStack::AddShared на серверной стороне. Вызова CPullStack::AddShared не происходит при обновлении страницы (ниже стоящий var_dump показывает, что событие OnPageStart отрабатывает ОК). По идее событие OnPageStart происходит при каждом обновлении страницы сайта. Вызов вижу только при вызове диалога редактирование файла (изменить страницу -> в режиме php кода)
Событие регистрирую следующим образом:
[CODE]EventManager::getInstance()->registerEventHandler("main", "OnPageStart", "crto.onetag", "testclass", "testfunction");[/CODE]
{
...
public static function testfunction()
{
...
CPullStack::AddShared(
Array(
'module_id' => 'crto.onetag',
'command' => 'test',
'params' => Array(1,2,3),
)
);
var_dump(xxx); // tut vse ok
...
}
}[/CODE]
Почему AddShared не вызывается при обновлении страницы?
Пытаясь ознакомиться с работой модуля я написал простой скрипт, который отправляет команду "test" из кастомного модуля crto.onetag с сервера на фронт при наступлении событий main::onPageStart.
На фронте пытаюсь поймать это сообщение с помощью
[CODE]BX.addCustomEvent("onPullEvent-crto.onetag", function(command,params) {
console.log('Works! with crto module');
console.log('Command is: ' + command + " comand");
console.log('Parameters are: ' + params + " params");
});[/CODE]
на выходе (в консоли) получаю ожидаемое
[CODE] Works! with crto module
Command is: test comand
Parameters are: 1,2,3 params [/CODE]
Все стандартно и описано в документации. Вопросы:
1. Почему я не могу получить историю сообщений? Согласно [URL=https://github.com/wandenberg/nginx-push-stream-module/blob/master/docs/examples/curl.textile#getting-old-messages]https://github.com/wandenberg/nginx-push-stream-module/blob/master/docs/examples/curl.textile#gettin...[/URL] делаю
[CODE]curl -v -s --no-buffer http://localhost/sub/bd00b95df5b4da2fefb2b90b4c10bcb6/5324e9c91482a7998bbc42c11e4d3e1d.b2[/CODE]где [URL=http://localhost/sub/bd00b95df5b4da2fefb2b90b4c10bcb6/5324e9c91482a7998bbc42c11e4d3e1d.b2]bd00b95df5b4da2fefb2b90b4c10bcb6/5324e9c91482a7998bbc42c11e4d3e1d[/URL] - это ID канала, который я получил из браузера. В ответ получаю HTML документ
Запрос на паблиш curl -s -v -X POST '[URL=http://localhost/bitrix/pub?id=channelA]http://localhost/bitrix/pub?id=channelA[/URL]' -d '1' заканчивается тем же.
2. Не совсем понимаю как происходит вызов функции CPullStack::AddShared на серверной стороне. Вызова CPullStack::AddShared не происходит при обновлении страницы (ниже стоящий var_dump показывает, что событие OnPageStart отрабатывает ОК). По идее событие OnPageStart происходит при каждом обновлении страницы сайта. Вызов вижу только при вызове диалога редактирование файла (изменить страницу -> в режиме php кода)
Событие регистрирую следующим образом:
[CODE]EventManager::getInstance()->registerEventHandler("main", "OnPageStart", "crto.onetag", "testclass", "testfunction");[/CODE]
testclass:
[CODE]class testclass{
...
public static function testfunction()
{
...
CPullStack::AddShared(
Array(
'module_id' => 'crto.onetag',
'command' => 'test',
'params' => Array(1,2,3),
)
);
var_dump(xxx); // tut vse ok
...
}
}[/CODE]
Почему AddShared не вызывается при обновлении страницы?