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"))); }
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; }