XMPPHP отправляет сообщение, но не получает

<?php
include("XMPP.php");

$conn = new XMPPHP_XMPP('server.com', 5222, 'user', 'pass', 'home');
$conn->useEncryption(true);
$conn->connect();
$conn->processUntil('session_start');
$conn->message('[email protected]', mktime());
$payloads = $conn->processUntil('message');
$conn->message('[email protected]', mktime());
$conn->disconnect();
?>

Правильно... так что он подключается - он запускает сеанс и отправляет первую временную метку, полученную на Jabber-клиенте, который я использую.

Затем предполагается, что "processUntil" получено сообщение (afaik), и если сообщение получено, отправьте другую метку времени. Ну, этот бит не работает.

У меня нет предварительных знаний о серверах XMPP или XMPPHP, поэтому любая помощь, даже самая элементарная, не останется неоцененной! :)

Спасибо.


person Thomas Clayson    schedule 02.12.2010    source источник
comment
Попробуйте передать последние несколько параметров ведения журнала для new XMPPHP_XMPHP, т.е. $xmpphp = new XMPPHP_XMPP( $server_settings["address"], 5222, $xmpp_settings["username"], $xmpp_settings["password"], $resource, NULL, TRUE, XMPPHP_Log::LEVEL_VERBOSE );   -  person Kendall Hopkins    schedule 02.12.2010
comment
это просто дает мне огромную страницу информации, которая на самом деле мне не помогает :p   -  person Thomas Clayson    schedule 03.12.2010
comment
Я не уверен, почему вы не можете заставить это простое приложение работать с библиотекой xmpphp... тем не менее, если вы все еще ищете решение, свяжитесь с автором библиотеки напрямую, иначе попробуйте другие библиотеки xmpp в PHP, например. Библиотека Jaxl github.com/abhinavsingh/JAXL   -  person Abhinav Singh    schedule 14.12.2010


Ответы (2)


Я боролся с этим некоторое время. Оказывается, вы должны объявить о своем присутствии при подключении. Я извлек это из cli_longrun_example.php и поместил после вызовов $conn->connect() и $conn->processUntil('session_start'):

$conn->presence($status='Controller available.');
person Alaina Hardie    schedule 18.04.2012

вы можете получить первое сообщение в вашем jabber-клиенте. с участием

$conn->message('[email protected]', mktime());

но тогда вы получаете сообщение с сервера с

   $payloads = $conn->processUntil('message');

но вы не можете получить сообщение с этим.

и скрипт не может загрузиться, поэтому вы не можете получить другое сообщение. у меня такая же проблема. вы можете использовать jaxl для этого.

person Maulik Kanani    schedule 07.05.2013