This class is for prebinding a XMPP Session with PHP.
- Clone the repo
- In your file where you want to do the prebinding:
/**
* Comment here for explanation of the options.
*
* Create a new XMPP Object with the required params
*
* @param string $jabberHost Jabber Server Host
* @param string $boshUri Full URI to the http-bind
* @param string $resource Resource identifier
* @param bool $useSsl Use SSL (not working yet, TODO)
* @param bool $debug Enable debug
*/
$xmppPrebind = new XmppPrebind('your-jabber-host.tld', 'http://your-jabber-host/http-bind/', 'Your XMPP Clients resource name', false, false);
$xmppPrebind->connect($username, $password);
$xmppPrebind->auth();
$sessionInfo = $xmppPrebind->getSessionInfo(); // array containing sid, rid and jid
// // array containing relevant BOSH info i.e.
// {
// wait: "60"
// requests: "2"
// ver: "1.8"
// polling: "2"
// inactivity: "10"
// hold: ""
// to: ""
// ack: null
// accept: ""
// maxpause: "120"
// }
$boshInfo = $xmppPrebind->getBoshInfo();
- If you use Candy, change the
Candy.Core.Connect()
line to the following:
Candy.Core.attach('<?php echo $sessionInfo['jid'] ?>', '<?php echo $sessionInfo['sid'] ?>', '<?php echo $sessionInfo['rid'] ?>');
- You should now have a working prebinding with PHP
If something doesn't work, you can enable Debug. Debug output is logged to FirePHP, so you have to install that first.
There exist other projects for other languages to support a prebind. Go googling :)
This class is in no way feature complete. There may also be bugs. I'd appreciate it if you contribute or submit bug reports.
Thanks.