2010-09-12 3 views
0

Как извлечь значения SID и RID, используемые в BOSH transport protocol для XMPP? В частности, я использую xmpphp.Получить XMPP SID и RID от BOSH в PHP?

+1

@ user43 ... Я отредактировал ваш вопрос, чтобы включить то, что, как я думаю, вы имеете в виду (помогает я действительно слышал о XMPP). Если это не то, что вы имеете в виду, отредактируйте его соответствующим образом. Добро пожаловать в SO кстати - несколько слов дружеского совета в следующий раз: лучше всего четко понимать то, что вы имеете в виду, и в том числе код еще лучше - это означает, что мы можем сузить варианты и дать вам хороший ответ. – 2010-09-12 19:19:58

+1

@Ninefingers приятное редактирование и введение! –

+0

@Pekka - ха-ха. Трудно точно сказать, где его/ее проблемы возникают из вопроса (например, о том, что было пробовано), но я думал, что я поставил в коробку что-то другое, кроме «объяснительного», и отговорил избирателей, потому что вопрос * * действителен, если немного расплывчато. – 2010-09-12 19:27:00

ответ

2

Я проделал большую работу над XMPPHP, особенно частью BOSH (которая до недавнего времени даже не работала). http://github.com/Wordi/xmpphp

В моем случае я использую его для загрузки пользовательского интерфейса и предоставления возможности автоматического входа в систему для XMPP BOSH.

class Library_BOSH extends XMPPHP_BOSH 
{ 

    public function getAutoLoginInfo() 
    { 
     return array(
      "jid" => $this->fulljid, 
      "rid" => $this->rid, 
      "sid" => current($this->sid) 
     ); 
    } 

    //we want to block saving the BOSH session into our $_SESSION, 
    //since we're just using it to bootstrap the UI client 
    public function saveSession(){;} 

} 

$bosh = new Library_BOSH(
    $server_address, $server_port, 
    $jid, $password, 
    NULL, NULL, FALSE, XMPPHP_Log::LEVEL_VERBOSE 
); 

$bosh->connect("http://myboshdomain.com/http-bind/", 60); 
$bosh->processUntil('session_start', 5); 

$bosh_info = $bosh->getAutoLoginInfo(); 
+0

Большое спасибо – user434366

+0

давая мне ошибку 'Fatal error: исключение исключения 'исключение' с сообщением 'String не может быть проанализирован как XML' в htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php: 88 Трассировка стека: # 0 htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php (88): SimpleXMLElement -> __ construct ('\ x1F \ x8B \ x08 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x8D \ x92aO \ xC2. .. ') # 1 /Applications/XAMPP/xamppfiles/htdocs/xmpp/xmpphp-master/test.php(30): XMPPHP_BOSH-> connect (' http: //192.168 .... ', 60) # 2 { main} брошен в htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php в строке 88' –

0

Вы хотите извлечь «сид» и «избавиться» от подключенного клиента Bosh? Если да, обычно они сохраняются в php-сеансах или куки-файлы браузера. Я не использовал xmpphp, но вы можете просто попытаться сбросить информацию о сеансе клиента, чтобы увидеть его содержимое.

+0

Я хочу знать, как я могу даже подключиться. – user434366

+0

В этом случае все, что я могу предложить, - попробовать работать с BoshChat и BoshMUChat с помощью библиотеки Jaxl (http://github.com/abhinavsingh/JAXL), у меня мало опыта работы с xmpphp. –

Смежные вопросы