Пример #1
0
 public function ProcessServerMessage(array $arMessage, $clientDomain = "")
 {
     if (!array_key_exists("message", $arMessage) || !array_key_exists(".", $arMessage["message"])) {
         return false;
     }
     $type = "normal";
     if (array_key_exists("type", $arMessage["message"]["."])) {
         $type = $arMessage["message"]["."]["type"];
     }
     if ($type == "error") {
         return false;
     }
     if (!in_array($type, array("chat", "groupchat", "headline", "normal"))) {
         return CXMPPUtility::GetServerErrorArray("bad-request");
     }
     $recipientJId = "";
     if (array_key_exists("to", $arMessage["message"]["."])) {
         $recipientJId = $arMessage["message"]["."]["to"];
     }
     if (strlen($recipientJId) <= 0) {
         return CXMPPUtility::GetServerErrorArray("bad-request");
     }
     $server = CXMPPServer::GetServer();
     $res = $server->Send($recipientJId, $arMessage, $clientDomain);
     return array('result' => array("." => array("type" => $res ? "success" : "skip")));
 }
Пример #2
0
 public function ProcessServerMessage(array $arMessage, $clientDomain = "")
 {
     if (!array_key_exists("presence", $arMessage) || !array_key_exists(".", $arMessage["presence"])) {
         return false;
     }
     $type = "available";
     if (array_key_exists("type", $arMessage["presence"]["."])) {
         $type = $arMessage["presence"]["."]["type"];
     }
     if ($type == "error") {
         return false;
     }
     if (!in_array($type, array("available", "unavailable", "subscribe", "subscribed", "unsubscribe", "unsubscribed", "probe"))) {
         return CXMPPUtility::GetServerErrorArray("bad-request");
     }
     $recipientJId = "";
     if (array_key_exists("to", $arMessage["presence"]["."])) {
         $recipientJId = $arMessage["presence"]["."]["to"];
     }
     $server = CXMPPServer::GetServer();
     if (strlen($recipientJId) <= 0) {
         $server->SendAll($arMessage, $clientDomain);
     } else {
         $server->Send($recipientJId, $arMessage, $clientDomain);
     }
     return true;
 }