/**
  * @param array $notification
  * @param array $overrideConfig
  * @return void
  */
 public function addNotification($notification, $overrideConfig)
 {
     $config = $this->getConfig($overrideConfig);
     $message = $this->getMessageForNotification($notification);
     $contacts = $notification['node']->getContacts($config['roles']);
     foreach ($contacts as $contact) {
         $xmppAddress = $contact->getAddressProperty('tx_caretaker_xmpp');
         if (!empty($xmppAddress)) {
             $this->connection->message($xmppAddress, $message);
         }
     }
 }
Пример #2
0
$xmpp = new XMPP($host, $port, $username, $password, $resource, $server, true, LOGGING_INFO);
$xmpp->connect();
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;
        }
    }