XMPP的PHP实现
XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装–〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。
include(“xmpp.php”);
-
$conn = new XMPP ( 'talk.google.com' , 5222 , 'username' , 'password' , 'xmpphp' , 'gmail.com' , $printlog = False , $loglevel = LOGGING_INFO ) ;
-
$conn -> connect ( ) ;
-
$conn -> processUntil ( 'session_start' ) ;
-
$conn -> message ( 'someguy@someserver.net' , 'This is a test message!' ) ;
-
$conn -> disconnect ( ) ;
-------------------------------------------------------------------------------------------------------------------------------------
include(“xmpp.php”);
-
$conn = new XMPP ( 'talk.google.com' , 5222 , 'user' , 'password' , 'xmpphp' , 'gmail.com' , $printlog = True , $loglevel = LOGGING_INFO ) ;
-
$conn -> connect ( ) ;
-
while ( ! $conn -> disconnected ) {
-
$payloads = $conn -> processUntil ( array ( 'message' , 'presence' , 'end_stream' , 'session_start' ) ) ;
-
foreach ( $payloads as $event ) {
-
$pl = $event [ 1 ] ;
-
switch ( $event [ 0 ] ) {
-
case 'message' :
-
print "———————————————————————————/n " ;
-
print "Message from: {$pl['from']}/n " ;
-
if ( $pl [ 'subject' ] ) print "Subject: {$pl['subject']}/n " ;
-
print $pl [ 'body' ] . "/n " ;
-
print "———————————————————————————/n " ;
-
$conn -> message ( $pl [ 'from' ] , $body = "Thanks for sending me /" {$pl['body']}/" ." , $type = $pl [ 'type' ] ) ;
-
if ( $pl [ 'body' ] == 'quit' ) $conn -> disconnect ( ) ;
-
if ( $pl [ 'body' ] == 'break' ) $conn -> send ( "</end>" ) ;
-
break ;
-
case 'presence' :
-
print "Presence: {$pl['from']} [{$pl['show']}] {$pl['status']}/n " ;
-
break ;
-
case 'session_start' :
-
$conn -> presence ( $status = "Cheese!" ) ;
-
break ;
-
}
-
}
-
}