- Модуль: xmpp
- Путь к файлу: ~/bitrix/modules/xmpp/classes/factory_classes/bind.php
- Класс: CXMPPReceiveIQBind
- Вызов: CXMPPReceiveIQBind::ReceiveMessage
public function ReceiveMessage($senderJId, array $arMessage, CXMPPClient $senderClient)
{
if ($senderJId == '')
return false;
if (!array_key_exists("iq", $arMessage) || !array_key_exists("bind", $arMessage["iq"])
|| ($arMessage['iq']['bind']['.']['xmlns'] != 'urn:ietf:params:xml:ns:xmpp-bind'))
return false;
$type = "";
if (array_key_exists("type", $arMessage["iq"]["."]))
$type = $arMessage["iq"]["."]["type"];
if ($type == "set")
{
$resource = $arMessage["iq"]["bind"]["resource"]["#"];
if ($resource == '')
$resource = "bx";
$senderClient->SetResource($resource);
$arMessageTmp = array(
"iq" => array(
"." => array(
"type" => "result",
"to" => htmlspecialcharsbx($senderClient->GetClientDomain())."/".$senderClient->GetStreamId(),
"id" => $arMessage['iq']['.']['id'],
),
"bind" => array(
"." => array("xmlns" => "urn:ietf:params:xml:ns:xmpp-bind"),
"jid" => array("#" => $senderJId."/".$resource),
),
),
);
$messageTmp = CXMPPParser::ToXml($arMessageTmp);
$senderClient->__Send($messageTmp);
}
else
{
$arMessageTmp = array(
"iq" => array(
"." => array(
"type" => "result",
"from" => $senderClient->GetClientDomain(),
"id" => $arMessage['iq']['.']['id'],
),
),
);
$messageTmp = CXMPPParser::ToXml($arMessageTmp);
$senderClient->__Send($messageTmp);
}
return true;
}