在 PHP 中从 BOSH 获取 XMPP SID 和 RID?
Posted
技术标签:
【中文标题】在 PHP 中从 BOSH 获取 XMPP SID 和 RID?【英文标题】:Get XMPP SID and RID from BOSH in PHP? 【发布时间】:2010-09-12 19:11:30 【问题描述】:如何提取用于 XMPP 的 BOSH transport protocol 中的 SID 和 RID 值?具体来说,我使用的是xmpphp。
【问题讨论】:
@user43... 我已经编辑了您的问题以包含我认为您的意思(帮助我真的听说过 XMPP)。如果这不是你的意思,请相应地编辑它。顺便说一句,欢迎来到 SO —— 给下一次友好的建议:最好明确你的意思,包括代码更好——这意味着我们可以缩小选择范围并给你一个很好的答案。 @Ninefingers 很好的编辑和介绍! @Pekka - 哈哈。很难从问题中准确说出他/她的问题在哪里(例如尝试了什么),但我认为我会在框中放入“自我解释”以外的其他内容并劝阻选民,因为问题是 有效,如果有点模糊。 【参考方案1】:我在 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();
【讨论】:
给我错误Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php:88 Stack trace: #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 thrown in htdocs/xmpp/xmpphp-master/XMPPHP/BOSH.php on line 88
【参考方案2】:
您是否要为连接的 bosh 客户端提取“sid”和“rid”?如果是,通常这些保存在 php 会话或浏览器 cookie 中。我没用过xmpphp,但是你可以尝试转储客户端的会话信息来查看它的内容。
【讨论】:
我想知道如何连接。 好吧,在这种情况下,我只能建议使用 Jaxl 库 (github.com/abhinavsingh/JAXL) 尝试工作 BoshChat 和 BoshMUChat 应用程序,我对 xmpphp 几乎没有经验。以上是关于在 PHP 中从 BOSH 获取 XMPP SID 和 RID?的主要内容,如果未能解决你的问题,请参考以下文章
使用 XMPP Strophe BOSH 刷新页面后客户端自动变为不可用
如何使用 XMPP 和 BOSH 实现 Facebook 聊天
gloox 是不是通过 BOSH 支持 BOSH 和 XMPP?