2010-09-12 94 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