• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_messenger.php
  • Класс: CIMMessenger
  • Вызов: CIMMessenger::CheckDesktopStatusOnline
static function CheckDesktopStatusOnline($userId = null)
{
	global $USER;
	if (is_null($userId))
	{
		$userId = $USER->GetId();
	}

	$userId = intval($userId);
	if ($userId <= 0)
	{
		return false;
	}

	$maxOnlineTime = 120;
	if (CModule::IncludeModule('pull') && CPullOptions::GetNginxStatus())
	{
		$maxOnlineTime = self::GetSessionLifeTime();
	}

	$status = CIMStatus::GetStatus($userId);
	$desktopLastDateStatus = $status['DESKTOP_LAST_DATE'] ?? null;

	if (
		$desktopLastDateStatus instanceof BitrixMainTypeDateTime
		&& $desktopLastDateStatus->getTimestamp() + $maxOnlineTime + 60 > time()
	)
	{
		return true;
	}

	return false;
}