Не должен, у меня напиример в p2p сидит 8000 клиентов, запросы каждую секунду штук по 10-20, а там метод доставки запросов аналогичный если не хуже, и ниче нормально все. Это как раз замечательная идея не клиента заставлять бегать на сервак периодически, а серваку рассылать пакеты корректирующие тем клиентам которые поддерживали состояние за последнии например 10 минут.Rav писал(а):Этот мониторчик случаем не ICL называется? Если он, то после 2,5К абонентов этот биллинг загнется. Был у нас такой. Удобный, но много не держит.
UTMTray альтернатива
ICL вроде слал каждые 10 или 15 секунд пакет с балансом и каждую секунду проверку запущена программа или нет. Походу от последнего и загибался. Вот если бы настраивать интервалы можно было по отсылке этих пакетов, то было бы нормально. На УТМ перешли как раз из-за этого + ICL не сертифицированный, а сеть сдавать надо было. В целом поддерживаю, идея хорошая по сравнению с UTM5 Wintray Client'. Много думал о создании своего клиент/серверного приложения, которое будет выполнять функции оповещения абонентов о их балансе и прочие полезные вещи, но мало опыта в программировании на С++/UNIX. Пока довольствуемся оригинальным личным кабинетом. В планах написать свой кабинет используя недавно приобретенный urfa_client.Magnum72 писал(а):Не должен, у меня напиример в p2p сидит 8000 клиентов, запросы каждую секунду штук по 10-20, а там метод доставки запросов аналогичный если не хуже, и ниче нормально все. Это как раз замечательная идея не клиента заставлять бегать на сервак периодически, а серваку рассылать пакеты корректирующие тем клиентам которые поддерживали состояние за последнии например 10 минут.Rav писал(а):Этот мониторчик случаем не ICL называется? Если он, то после 2,5К абонентов этот биллинг загнется. Был у нас такой. Удобный, но много не держит.
Благодаря появлению urfa php сделал новую утилиту.
Полностью переработал код и избавился от всего лишнего. Так же благодаря urfa php и написанию на его базе личного кабинета на joomla, из утилиты убраны отчеты, кредиты, оплата, смена пароля.
Итак что осталось:
Вкладка Новости:
Вкладка RSS лента - без изменений.
Вкладка Инормация о провайдере - без изменений
Вкладка Информация:
Вкладка Информация пользователя - без изменений
Информация об услугах - изменеия в внешнем виде и способе формирования. Теперь на сервере формируется txt или rtf файл и показываются пользователю
Вкладка Сообщения:
Отказался от ущербного message-engine нетапа, отказался от жручего DB-подобного способа показа и хранения сообщений. Теперь для обмена сообщениями используется Jabber. Для хранения - обычный текстовый файл.
Вкладка настройки:
Убрана смена пароля.
Исправлены следующие глюки:
Не восстановление нормальной работы после обрыва связи. Теперь утилита корректно восстанавливается при потерях связи до запуска, во время запуска и во время работы. При потере соединения, видимые баланс и параметры пользователя остаются без изменений (раньше все сбрасывалось в ноль и стоило много нервов ошарашенным пользователям).
Изменение принципов работы:
Теперь в серверном конфиге можно задать параметры четырех таймеров - Проверка баланса и инета (используеться функция rpcf_user5_brief_report_for_wintray()), проверка данных пользователя (rpcf_user5_get_user_info(), параметры тарифа (rpcf_user5_get_services() и rpcf_user5_get_services_info($slink_id)), проверка сообщений.
Это позволяет более гибко настраивать нагрузку на сервер.
Вся серверная часть теперь состоит из конфига и скрипта utmtray.php. Установка и запуск утилиты стал на порядок проще и быстрее.
Занимаемая оперативка утилиты уменьшена с 48Мб до 5Мб, быстродействие увеличено в несколько раз.
Вот содержимое utmtray.php, заметьте что теперь вы можете переписать под себя способ получения ответов пользователю (к примеру напрямую брать из БД)
В данный момент утилита проходит бета-тест, как отшлифую - сразу выложу.[/list]
Полностью переработал код и избавился от всего лишнего. Так же благодаря urfa php и написанию на его базе личного кабинета на joomla, из утилиты убраны отчеты, кредиты, оплата, смена пароля.
Итак что осталось:
Вкладка Новости:
Вкладка RSS лента - без изменений.
Вкладка Инормация о провайдере - без изменений
Вкладка Информация:
Вкладка Информация пользователя - без изменений
Информация об услугах - изменеия в внешнем виде и способе формирования. Теперь на сервере формируется txt или rtf файл и показываются пользователю
Вкладка Сообщения:
Отказался от ущербного message-engine нетапа, отказался от жручего DB-подобного способа показа и хранения сообщений. Теперь для обмена сообщениями используется Jabber. Для хранения - обычный текстовый файл.
Вкладка настройки:
Убрана смена пароля.
Исправлены следующие глюки:
Не восстановление нормальной работы после обрыва связи. Теперь утилита корректно восстанавливается при потерях связи до запуска, во время запуска и во время работы. При потере соединения, видимые баланс и параметры пользователя остаются без изменений (раньше все сбрасывалось в ноль и стоило много нервов ошарашенным пользователям).
Изменение принципов работы:
Теперь в серверном конфиге можно задать параметры четырех таймеров - Проверка баланса и инета (используеться функция rpcf_user5_brief_report_for_wintray()), проверка данных пользователя (rpcf_user5_get_user_info(), параметры тарифа (rpcf_user5_get_services() и rpcf_user5_get_services_info($slink_id)), проверка сообщений.
Это позволяет более гибко настраивать нагрузку на сервер.
Вся серверная часть теперь состоит из конфига и скрипта utmtray.php. Установка и запуск утилиты стал на порядок проще и быстрее.
Занимаемая оперативка утилиты уменьшена с 48Мб до 5Мб, быстродействие увеличено в несколько раз.
Вот содержимое utmtray.php, заметьте что теперь вы можете переписать под себя способ получения ответов пользователю (к примеру напрямую брать из БД)
Код: Выделить всё
<?php
//@ini_set("display_errors", "1");
//error_reporting(E_ALL);
require_once("../stat/urfa/URFAClient.php");
include 'XMPPHP/XMPP.php';
//print_r($_POST);
//print "<BR>****************************************<BR>";
//print_r($_GET);
$jabber_host = 'jb.flint.net';
$jabber_port = 5222;
$jabber_admin = 'kayfolom@flint.net';
$Param = $_GET;
//$Param = $_POST;
function filter_tclass($s) {
$ret = '';
if (strpos($s,'(10)')>0) {
$ret = str_replace('(10)','',$s);
}
if (strpos($s,'(14)')>0) {
$ret = str_replace('(14)','',$s);
}
return $ret;
}
$login = $Param['login'];
$password = $Param['password'];
$cmd = $Param['cmd'];
if ($cmd=='ping') {
exit('pong');
}
$urfa_user5 = new URFAClient_User5($login, $password, "127.0.0.1", "11758",false);
if ($urfa_user5->error<>'') {
exit($urfa_user5->error);
}
switch ($cmd) {
case 'basic_report' :
$result = $urfa_user5->rpcf_user5_brief_report_for_wintray(); //-0x4026
$result_str = 'int_status='.$result['int_status']."\r\n".
$result_str = $result_str.'balance='.$result['balance']."\r\n";
exit($result_str);
case 'base_report' :
$result_str = '[base_report]'."\r\n";
$result = $urfa_user5->rpcf_user5_get_user_info();
$result_str = $result_str.'login='.$result['login']."\r\n";
$result_str = $result_str.'basic_account='.$result['basic_account']."\r\n";
$result_str = $result_str.'balance='.$result['balance']."\r\n";
$result_str = $result_str.'credit='.$result['credit']."\r\n";
$result_str = $result_str.'is_blocked='.$result['is_blocked']."\r\n";
$result_str = $result_str.'full_name='.$result['full_name']."\r\n";
$result_str = $result_str.'int_status='.$result['int_status']."\r\n";
exit($result_str);
case 'tariff_report' :
$result_str = 'Тариф : ';
$services = $urfa_user5->rpcf_user5_get_services();
$str_exp = explode(" ", $services['services'][0]['discount_period']);
$date_start = $str_exp[1].' '.$str_exp[2].' '.$str_exp[3].' '.$str_exp[4];
$date_end = $str_exp[7].' '.$str_exp[8].' '.$str_exp[9].' '.$str_exp[10];
$date_start = date("d.m.Y", strtotime($date_start));
$date_end = date("d.m.Y", strtotime($date_end));
$result_str = $result_str.$services['services'][0]['tariff_name']."\r\n";
$result_str = $result_str.'Расчетный период : '.$date_start." - ".$date_end."\r\n";
$service_type = 3;
$service_traff_index = 0;
for ($i=0;$i<$services['count'];$i++) {
if ($services['services'][$i]['service_type']==$service_type) {
$slink_id = $services['services'][$service_traff_index]['id'];
break;
}
}
$services_info = $urfa_user5->rpcf_user5_get_services_info($slink_id); //-0x4024
// print_r($services_info);
$result_str = $result_str.'Скачано в текущем расчетном периоде:'."\r\n";
for ($i=0;$i<$services_info['iptsl_downloaded_size'];$i++) {
$result_str = $result_str.filter_tclass("\t".$services_info['iptsl_downloaded_size_list'][$i]['tclass'].' '.sprintf ("%01.3f Мб", $services_info['iptsl_downloaded_size_list'][$i]['downloaded']/1048576)."\r\n");
}
$result_str = $result_str.'Предоплаченно'."\r\n";
for ($i=0;$i<$services_info['iptsd_prepaid_size'];$i++) {
$result_str = $result_str.filter_tclass("\t".$services_info['iptsd_prepaid_size_list'][$i]['tclass_name_p'].' '.sprintf ("%01.3f Мб", $services_info['iptsd_prepaid_size_list'][$i]['prepaid_p']/1048576)."\r\n");
}
$result_str = $result_str.'Стоимость превышения'."\r\n";
for ($i=0;$i<$services_info['iptsd_borders_size'];$i++) {
$result_str = $result_str.filter_tclass("\t".$services_info['iptsd_borders_size_list'][$i]['tclass_name'].' '.sprintf ("%01.2f руб.", $services_info['iptsd_borders_size_list'][$i]['cost1'])."\r\n");
}
$result_str = $result_str.'IP адреса'."\r\n";
for ($i=0;$i<$services_info['ipgroup_size'];$i++) {
$result_str = $result_str."\t".$services_info['ipgroup_size_list'][$i]['ip'].' Mask '.$services_info['ipgroup_size_list'][$i]['mask']."\r\n";
}
exit($result_str);
case 'internet_on':
$urfa_user5->rpcf_user5_change_int_status(1);
exit;
case 'internet_off':
$urfa_user5->rpcf_user5_change_int_status(0);
exit;
case 'send_msg' :
if (!isset($Param['message'])) exit('ERROR null message');
$conn = new XMPPHP_XMPP($jabber_host, $jabber_port, $login , $password, 'utmtray', 'flint.net', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
try {
$conn->UseEncryption = true;
$conn->connect();
$conn->processUntil('session_start');
$conn->message($jabber_admin,$Param['message']);
$conn->disconnect();
} catch(XMPPHP_Exception $e) {
print 'ERROR';
die($e->getMessage());
}
print 'OK';
exit;
case 'receive_msg' :
$conn = new XMPPHP_XMPP($jabber_host, $jabber_port, $login , $password, 'utmtray', 'flint.net', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
$i = 0;
$message_num = 1;
$result_str = '';
try {
$conn->connect();
while(!$conn->isDisconnected()) {
$payloads = $conn->processUntil(array('message', 'session_start'),1);
foreach($payloads as $event) {
$pl = $event[1];
switch($event[0]) {
case 'message':
$result_str = $result_str.'[message]'."\r\n";
$result_str = $result_str.'from='.$pl['from']."\r\n";
$result_str = $result_str.'body='.$pl['body']."\r\n";
$message_num = $message_num + 1;
case 'session_start':
$conn->presence();
break;
}
}
$i=$i+1;
if ($i==2) exit($result_str);
}
} catch(XMPPHP_Exception $e) {
print 'ERROR';
die($e->getMessage());
}
exit($result_str);
default:
exit('ERORR unknow command');
}
?>
А можно краткий ликбез ? 
Вот я скачал архивчик urfaclient-1.0b4.tar.gz и распаковал его, внутри обнаружил:
-rw-r--r-- 1 root root 2854 2008-12-26 14:07 Changelog
-rwxr-xr-x 1 root root 3638 2008-12-26 14:07 cli.php
-rw-r--r-- 1 root root 24641 2008-12-26 13:54 functions.php
-rw-r--r-- 1 root root 3308 2008-12-25 02:37 packet.php
-rw-r--r-- 1 root root 4062 2008-12-26 13:59 socket.php
-rw-r--r-- 1 root root 7582 2008-12-26 14:08 user_functions.php
Дальше чего делать та ?
У вас ссылка идёт на файл URFAClient.php но его там нет, может надо переименовать в cli.php...
Вобщем кому не лень, в двух слова плз. объясните что с чем связать и как
спс.

Вот я скачал архивчик urfaclient-1.0b4.tar.gz и распаковал его, внутри обнаружил:
-rw-r--r-- 1 root root 2854 2008-12-26 14:07 Changelog
-rwxr-xr-x 1 root root 3638 2008-12-26 14:07 cli.php
-rw-r--r-- 1 root root 24641 2008-12-26 13:54 functions.php
-rw-r--r-- 1 root root 3308 2008-12-25 02:37 packet.php
-rw-r--r-- 1 root root 4062 2008-12-26 13:59 socket.php
-rw-r--r-- 1 root root 7582 2008-12-26 14:08 user_functions.php
Дальше чего делать та ?

У вас ссылка идёт на файл URFAClient.php но его там нет, может надо переименовать в cli.php...
Вобщем кому не лень, в двух слова плз. объясните что с чем связать и как

Это старая версия урфы, новая работает на классах. Ждем релиза от автора. Когда выложу утилиту, с нейже выложу и свой пак урфы. Но у меня она не релизная, а глубоко-бетоваяnetvirus писал(а):А можно краткий ликбез ?
Вот я скачал архивчик urfaclient-1.0b4.tar.gz и распаковал его, внутри обнаружил:
-rw-r--r-- 1 root root 2854 2008-12-26 14:07 Changelog
-rwxr-xr-x 1 root root 3638 2008-12-26 14:07 cli.php
-rw-r--r-- 1 root root 24641 2008-12-26 13:54 functions.php
-rw-r--r-- 1 root root 3308 2008-12-25 02:37 packet.php
-rw-r--r-- 1 root root 4062 2008-12-26 13:59 socket.php
-rw-r--r-- 1 root root 7582 2008-12-26 14:08 user_functions.php
Дальше чего делать та ?
У вас ссылка идёт на файл URFAClient.php но его там нет, может надо переименовать в cli.php...
Вобщем кому не лень, в двух слова плз. объясните что с чем связать и какспс.

Так же выложу и джаберовский интерфейс XMPPHP, чуток подправленный.
Новая версия http://www.ukhta-inform.ru/UTMTray1.0.4.4.zip
Со старой осталось мало общего.
На стороне сервера теперь всего один скрипт php (ну плюс urfa php, интерфейс к джаберу).
Общение спользователями теперь realtime, посредством джабера (сервер в комплект не входит
)
Вся логика перенесена на сервер, гораздо больше возможностей переписать под себя (при условии владения php, хотя серверный скрипт можно на чем угодно переписать).
Сама утилита стала стабильна, восстанавливает нормальную работу после обрывов связи и прочих катаклизмов. Проверено 2-х недельным тестом в рабочей сети, на полутысячи бета-тестеров
Также прямо в утилиту встроил Личный кабинет (ссылка в серверном конфиге) - пользователям понравилось что можно прямо из утилиты туда ходить, не открывая браузер.
Внимание!!! нагрузка на httpd возрасла по сравнению со старой утилитой на ~20%, но без проблем можно поставить на отдельный комп.
В архиве папки :
MakeInstall - скрипт для создания инсталяции (основная функция инсталяции - прописать в реестре WEBroot, чтоб пользователя не напрягать настройками.
Server_side
utmtray.ini.php - конфиг отдающийся клиенту
utmtray.php - сам скрипт
urfa - urfa php
XMPPHP - интерфейс работы с джабером (малость подправленный)
UTMTray
Cама утилита
Со старой осталось мало общего.
На стороне сервера теперь всего один скрипт php (ну плюс urfa php, интерфейс к джаберу).
Общение спользователями теперь realtime, посредством джабера (сервер в комплект не входит

Вся логика перенесена на сервер, гораздо больше возможностей переписать под себя (при условии владения php, хотя серверный скрипт можно на чем угодно переписать).
Сама утилита стала стабильна, восстанавливает нормальную работу после обрывов связи и прочих катаклизмов. Проверено 2-х недельным тестом в рабочей сети, на полутысячи бета-тестеров

Также прямо в утилиту встроил Личный кабинет (ссылка в серверном конфиге) - пользователям понравилось что можно прямо из утилиты туда ходить, не открывая браузер.
Внимание!!! нагрузка на httpd возрасла по сравнению со старой утилитой на ~20%, но без проблем можно поставить на отдельный комп.
В архиве папки :
MakeInstall - скрипт для создания инсталяции (основная функция инсталяции - прописать в реестре WEBroot, чтоб пользователя не напрягать настройками.
Server_side
utmtray.ini.php - конфиг отдающийся клиенту
utmtray.php - сам скрипт
urfa - urfa php
XMPPHP - интерфейс работы с джабером (малость подправленный)
UTMTray
Cама утилита
db.sql - нафик, это из моего проекта вебморды на ждумле затесалосьga6iem писал(а):ну вот к примеру, папка server_side:
ее, я так понимаю в www_root
далее правим db.sql и импортим в UTM5, так? Все? xml-ы никакие править не надо?
ЗЫ: версия 0006

Сожержимое server_side - куда угодно, клиент будет обращаться туда по заданному в реестре на клиентской машине WEBRoot путю.
Для начала добейтесь чтоб у вас заработала серверная часть. В обычном браузере попробуйте обратиться в https://you_server/utmtray.php?cmd=ping , если ответом будет pong значит пол дела сделано. Ну и так далее по аналогии...
Не знаю о каких xml-файлах идет речь, нет их.