Привет эксперты XMPP / JAXL,
Я пытаюсь настроить предварительную привязку с JAXL в следующей среде:
Без предварительной привязки (и без jaxl) кажется, что все идет гладко, но по какой-то причине мне не удается заставить работать jaxl.
когда я пытаюсь запустить echo_bosh_bot, я получаю следующую ошибку:
[root@dev examples]# php echo_bosh_bot.php chat@localhost chat
jaxl:160 - 2016-10-27 09:43:32 - strict mode enabled, adding exception handlers. ' .
'Set 'strict' => false inside JAXL config to disable this
jaxl:203 - 2016-10-27 09:43:33 - created pid file /software/JAXL-master/examples/.jaxl/run/jaxl_6116.pid
jaxl_exception:48 - 2016-10-27 09:43:33 - got jaxl exception construct with Argument 1 passed to JAXL::require_xep() must be an array, string given, called in /software/JAXL-master/src/JAXL/jaxl.php on line 228 and defined, 4096, /software/JAXL-master/src/JAXL/jaxl.php, 282
jaxl:250 - 2016-10-27 09:43:33 - cleaning up pid and unix sock files
[root@dev examples]# ^C
[root@dev examples]#
Очевидно также, что предварительное ожидание не работает хорошо; когда я запускаю prebind.php, я получил 200 OK, но в ответ я получил
syntax error: JSON.parse: Unexpected end of data at line 1 column 1 of the json data
Это мой файл prebind.php:
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json; charset=utf-8');
date_default_timezone_set('Europe/Rome');
require '/software/JAXL-master/vendor/autoload.php';
require '/software/JAXL-master/src/JAXL/jaxl.php';
$client = new JAXL(array(
'jid'=>'chat@localhost',
'pass'=>'chat',
'bosh_url' => 'http://localhost/http-bind'
));$client ->add_cb('on_auth_success', function(){
global $client;
$array = array(
//'rid' => $client->xeps['0206']->rid,
//'sid' => (string)$client->xeps['0206']->sid,
'jid'=> $client->jid->to_string(),
'bosh_url' => 'http://localhost/http-bind'
);
echo json_encode($array);
exit;
});
$client->add_cb('on_auth_failure', function($reason) {
global $client;
echo("got on_auth_failure cb with reason $reason");
$client->send_end_stream();
});
$client->start();
echo "done";
?>
Любая помощь будет принята с благодарностью — спасибо
Джулио
Задача ещё не решена.
Других решений пока нет …