Пример #1
0
while (!$xmpp->disconnected) {
    $payloads = $xmpp->processUntil(array('message', 'presence', 'end_stream', 'session_start'));
    foreach ($payloads as $event) {
        $pl = $event[1];
        switch ($event[0]) {
            case 'message':
                echo "---------------------------------------------------------------------------------\n";
                echo "Message from: {$pl['from']}\n";
                if ($pl['subject']) {
                    echo "Subject: {$pl['subject']}\n";
                }
                echo $pl['body'] . "\n";
                echo "---------------------------------------------------------------------------------\n";
                $xmpp->message($pl['from'], "Thanks for sending me \"{$pl['body']}\".", $pl['type']);
                if ($pl['body'] == 'quit') {
                    $xmpp->disconnect();
                }
                if ($pl['body'] == 'break') {
                    $xmpp->send("</end>");
                }
                break;
            case 'presence':
                echo "Presence: {$pl['from']} [{$pl['show']}] {$pl['status']}\n";
                break;
            case 'session_start':
                $xmpp->presence('Ready to roxorz!');
                break;
        }
    }
}
unset($xmpp);
Пример #2
0
define('PROCESS_TIMEOUT', 10);
define('DEBUG', true);
$conn = new XMPP(XMPP_HOST, XMPP_PORT, XMPP_USERNAME, XMPP_PASSWORD, 'trnd', XMPP_SERVER, DEBUG, LOGGING_INFO);
function connect()
{
    global $conn;
    $conn->connect();
    $conn->processUntil('session_start', PROCESS_TIMEOUT);
    return true;
}
$first_daemon = true;
$processing = false;
$awaiting_transfer = false;
$transfer_pending = false;
$magic = false;
for (connect(), $conn->presence(DAEMON_READY), $me = explode('/', $conn->fulljid); !$conn->disconnected; $evs = $conn->processUntil(array('message', 'presence'), PROCESS_TIMEOUT)) {
    if (is_array($evs)) {
        foreach ($evs as $ev) {
            $type = $ev[0];
            $pl = $ev[1];
            switch ($type) {
                case 'presence':
                    $other = explode('/', $pl['from']);
                    if (DEBUG) {
                        "\npresence: {$pl['from']} ";
                    }
                    if ($other[0] === $me[0] && @$other[1] !== $me[1]) {
                        // a sibling daemon!
                        if (DEBUG) {
                            echo "sibling! " . implode(" ", $pl);
                        }