2010-09-12 102 views
0

如何提取用於XMPP的BOSH transport protocol中使用的SID和RID值?具體來說,我使用xmpphp從PHP中的BOSH獲取XMPP SID和RID?

+1

@ user43 ...我編輯了你的問題,包括我認爲你的意思(幫助我真的聽說過XMPP)。如果這不是你的意思,請相應地編輯它。順便提一下,歡迎來到SO--下一次友好建議的幾句話:最好明確你的意思,包括代碼更好 - 這意味着我們可以縮小選項的範圍,並給你一個很好的答案。 – 2010-09-12 19:19:58

+1

@Ninefingers很好的編輯和介紹! – 2010-09-12 19:21:09

+0

@Pekka - 哈哈。很難確切地說出他/她的問題來自哪個問題(例如,已經嘗試了什麼),但我想我會在盒子裏放一些「自我解釋性」以外的東西,並勸阻選民,因爲問題*是有效的,如果有點模糊。 – 2010-09-12 19:27:00

回答

2

我在XMPPHP上做了很多工作,特別是它的BOSH部分(直到最近甚至沒有工作)。 http://github.com/Wordi/xmpphp

就我而言,我使用它來引導UI客戶端併爲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 2010-09-13 20:29:48

+0

在htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php:88堆棧跟蹤:#0中給出錯誤'致命錯誤:未收集異常'異常',消息'字符串不能被解析爲XML' htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php(88):SimpleXMLElement - > __ construct('\ x1F \ x8B \ x08 \ x00 \ 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}拋出在88行上的htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php中 – 2016-03-30 13:15:37

0

您是否想爲連接的bosh客戶端提取「sid」和「rid」?如果是,通常這些保存在php會話或瀏覽器cookie中。我沒有使用xmpphp,但您可以嘗試轉儲客戶端的會話信息以查看其內容。

+0

我想知道我甚至可以連接。 – user434366 2010-09-13 00:51:48

+0

那麼在那種情況下,我可以建議的是嘗試使用Jaxl庫(http://github.com/abhinavsingh/JAXL)工作的BoshChat和BoshMUChat應用程序,我幾乎沒有使用xmpphp的經驗。 – 2010-09-13 10:45:02