您的位置:首页 > 其它

xmpp 添加用户 添加好友请求 删除好友

2012-08-14 11:33 211 查看
http://hi.baidu.com/txjlrk/item/074aeebb1c9f8ee04ec7fd67

1、测试文件 adduser.php

include_once './XMPPHP/XMPP.php';

$conn = new XMPPHP_XMPP($host, 5222, $xmppUserName, $xmppPassword, 'xmpphp', 'svn.zhaoduila.net', false);

try {

$conn->connect();

//发送好友请求、发送消息、删除好友 需要以下两行

$conn->processUntil('session_start');

$conn->presence();

//添加用户

// $conn->registerNewUser($xmppUserName, $xmppPassword, $email);

//发送消息

// $conn->message('liuruikang1@svn.zhaoduila.net', 'This is a test message!');

//发送好友请求

// $conn->addRosterContact($jid, $name);

//删除好友

$conn->deleteRosterContact($jid);

$conn->disconnect();

} catch (XMPPHP_Exception $e) {

die($e->getMessage());

}

2、我是直接把方法追加到 XMPP.php 文件中的

/**

* Register a new user.

*

* @param $entity

* Entity we want information about

*/

public function registerNewUser($username, $password = NULL, $email){

if (!isset($password))

$password = $this->genRandomString(15);

$id = 'reg_' . $this->getID();

$xml = "<iq type='set' id='$id'>

<query xmlns='jabber:iq:register'>

<username>" . $username . "</username>

<password>" . $password . "</password>

<email>" . $mail . "</email>

<name></name>

</query>

</iq>";

$this->addIdHandler($id, 'register_new_user_handler');

$this->send($xml);

}

/**

* Handler for new user registration

*

* @param XML Object $xml

*/

public function register_new_user_handler($xml){

//dpm($xml);

//var_dump($xml);

switch ($xml->attrs['type']) {

case 'error':

$this->event('new_user_registered', 'error');

break;

case 'result':

// dpm($xml->subs);

$query = $xml->sub('query');

$username='';

$password='';

if(!is_array($query->subs)) {

foreach ($query->sub as $key => $value) {

switch ($value->name) {

case 'username':

$username = $value->data;

break;

case 'password':

$password = $value->data;

break;

}

}

}

$this->event('new_user_registered', array('jid' => $username . "@{$this->server}", 'password' => $password));

default:

$this->event('new_user_registered', 'default');

}

}

/**

* Add contact to your roster

*/

public function addRosterContact($jid, $name, $groups = array()){

// return if there is no jid specified

if(!$jid) return;

// set name to the jid if none is specified

if (!$name) { $name = $jid; }

$id = $this->getID();

$xml = "<iq type='set' id='$id'>";

$xml .= "<query xmlns='jabber:iq:roster'>";

$xml .= "<item jid='$jid' name='$name'>";

foreach ($groups as $group) {

$xml .= "<group>$group</group>";

}

$xml .= "</item>";

$xml .= "</query>";

$xml .= "</iq>";

$xml .= "<presence to='" . $jid . "' type='subscribe'/>";

$this->addIdHandler($id, 'add_roster_contact_handler');

$this->send($xml);

}

/**

* @param XML Object $xml

*/

protected function add_roster_contact_handler($xml) {

// do anything you wish here

$this->event('contact_added');

}

/**

*

* @param $jid

* Contact you wish to remove

*/



public function deleteRosterContact($jid) {

$id = $this->getID();

$xml = "<iq type='set' id='$id'>";

$xml .= "<query xmlns='jabber:iq:roster'>";

$xml .= "<item jid='" . $jid . "' subscription='remove' />";

$xml .= "</query>";

$xml .= "</iq>";

$this->addIdHandler($id, 'delete_roster_contact_handler');

$this->send($xml);

}

/**

*

* @param XML Object $xml

*/

protected function delete_roster_contact_handler($xml) {

// do any handling you wish here

$this->event('contact_removed');

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: