Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
Страницы: <<123
Страница: 3 из 3
Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 10, June, 2019 09:29

А где можно взять актуальный файл документации по TCP/IP-серверу? В файле, который идет в дистрибутиве не содержит описания многих команд.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 10, June, 2019 10:14

woodyfon написал(а):
-------------------------------------------------------
> А где можно взять актуальный файл документации по
> TCP/IP-серверу? В файле, который идет в
> дистрибутиве не содержит описания многих команд.

Возможно, такой документ есть у авторов. А может, нет и у них. eye rolling smiley

Я изучал протокол ИРБИС с помощью замечательной программы WireShark. Возможно, это самый правильный способ, т. к. документация нередко противоречит настоящему положению дел. eye popping smiley

Ещё один способ изучения протокола — дизассемблирование irbis64_client.dll (например, с помощью IDA Pro). Правда, этот способ требует знания ассемблера Intel x86.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Gena (IP-адрес скрыт)
Дата: 10, June, 2019 10:15

Актуального файле нет ни в одном дистрибутиве. Более того, иногда в файле "Сервер.doc" указаны не верные параметры. Самый верный способ - ставить Ирбис-прокси и логировать запрос. Там есть подробные данные о запросах, передаваемых параметрах и ответах

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 10, June, 2019 20:09

Цитата:
amironov73
С номером команды всё ещё проще: начинаю с 1 и добавляю по 1 после каждого обращения к серверу (см. [github.com]).
и пока с этим проблем не было.
После "обновления страницы" произойдет опять регистрация одно и того же пользователя, но с другим идентификатором.
Думаю, без создания сессии здесь не обойтись.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 11, June, 2019 01:41

Какой должен быть запрос к серверу, чтобы выполнить команду подтверждения регистрации пользователя (N)?
Описание в документации неверно.

С другими командами, например, поиск по словарю или последовательный с дальнейшим расформатированием найденных записей, проблем пока не возникло.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 11, June, 2019 05:15

woodyfon написал(а):
-------------------------------------------------------
> После "обновления страницы" произойдет опять
> регистрация одно и того же пользователя, но с
> другим идентификатором.
> Думаю, без создания сессии здесь не обойтись.

Завести сессию -- это идеологически правильно. Но у меня нормально работает и такой рабоче-крестьянский код:
require_once "PhpIrbis.php";

// подключились к серверу
$client = new IrbisConnection();
$client->host = "1.2.3.4";
$client->username = "librarian";
$client->password = "secret";
if (!$client->connect()) {
    echo "Не могу подключиться!";
    die(1);
}

// нашли что-нибудь и расформатировали
$params = new SearchParameters();
$params->expression = '"K=бетон$"';
$params->format = BRIEF_FORMAT;
$params->numberOfRecords = 100;
$found = $client->searchEx($params);

// отсортировали
$descriptions = FoundLine::toDescription($found);
sort($descriptions);

// показали
echo '<ol>';
foreach ($descriptions as $description) {
    echo '<li>' . $description . '</li>';
}
echo '</ol>';

// отключились
unset($client);
Вы подключаетесь к серверу от имени одного и того же пользователя? Или они разные?

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 11, June, 2019 09:43

Имя и пароль всегда один и тот же (MASTER или 1).
Если без сессий, то идентификатор необходимо делать статичным (не меняется).

У меня алгоритм такой:
Выполняю подтверждение регистрации. Если ZERO, идем дальше. Если меньше нуля, то выполняем регистрацию и идем дальше.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, October, 2019 15:22

Как прочитать текстовый ресурс (справочник), находящийся в папке Deposit на сервере?
Справочник mnu удается прочитать, но только если существует в папке указанной базы данных
Например,
Запрос:
-=== BEGIN REQUEST ===-
38
L
R
L
218732
4





10.IBIS.VDU_SF.MNU
-=== END REQUEST ===-
Ответ:
-=== BEGIN RESPONSE ===-
L
829147
4
301






01\x1F\x1EГазета\x1F\x1E02\x1F\x1EЖурнал\x1F\x1E03\x1F\x1EМноготомное издание

-=== END RESPONSE ===-

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 18, October, 2019 08:37

woodyfon написал(а):
-------------------------------------------------------
> Как прочитать текстовый ресурс (справочник),
> находящийся в папке Deposit на сервере?

Лично я в подобной ситуации применяю простой хак:
$specification = '1..deposit/vdu.mnu';
$resource = $connection->readTextFile($specification);
echo '<pre>', $resource, '</pre>';
Пока ИРБИС-сервер позволяет запрашивать ресурсы с указанием папки, такие фокусы будут работать. В будущем, возможно, разработчики прикроют эту лавочку. Придётся придумывать что-нибудь ещё :)

Вложения: GetDeposit.php (1.1KB)  
Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 18, October, 2019 15:40

Я всегда думал, что результаты поиска в окне списка записей в АРМ Каталогизатор сортирует сервер (указана соответствующая сортировка). Единственная команда, которая задействует сортировку, это получение выходных форм. Соответственно сортировку берет на себя непосредственно клиент-сервер.
Алгоритм как можно получить отсортированные записи:
1) Ищем записи и расформатируем их по формату сортировки. (Например, если по году издания, то в начале будет год, далее второй ключ и т. д.)
Результат - массив MFN и формат
Команда = 'K'
2) Сортируем средствами php и получаем новый массив
3) Далее по полученным MFN расформатируем записи порциями.
Команда = 'G'
Для оптимизации можно применять различные методы кэширования.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 18, October, 2019 17:40

woodyfon написал(а):
-------------------------------------------------------
> Я всегда думал, что результаты поиска в окне
> списка записей в АРМ Каталогизатор сортирует
> сервер (указана соответствующая сортировка).

Некая сортировка при поиске по команде "K" в сервере ИРБИС всё же предусмотрена smiling smiley

Читаем релиз 2014.1:

Цитата:
Введен новый параметр в irbis_server.ini - UpDownSearchResult – определяющий порядок выдачи документов при поиске. Принимает значения: 0 (по умолчанию) – документы выдаются в порядке возрастания MFN; 1 – документы выдаются в порядке убывания MFN.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Игорь (IP-адрес скрыт)
Дата: 07, November, 2019 10:49

Кто бы ещё разъяснил, за каким тойфелем одни пакеты передаются в кодировке cp1251, другие - в utf8... Нет бы единообразно - всё в utf-е...

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Johan (IP-адрес скрыт)
Дата: 05, November, 2020 12:07

Авторизация читателя по TCP, считается "рабочим подключением"?



Редактировано 1 раз. Последний раз 05.11.2020 12:08 пользователем Johan.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Gena (IP-адрес скрыт)
Дата: 05, November, 2020 12:32

Вопрос не понятный. Что значит термин "рабочее подключение"?

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Johan (IP-адрес скрыт)
Дата: 05, November, 2020 16:43

https://i.paste.pics/1b0070da291f5fc8c38fabae1e7b18e9.png?trs=015e0521da83887dd91f5c61131395f7bc9c4c081b3bba4a1494a05630a5095b

мы просто только готовимся переходить, еще не совсем понимаю как это ограничение работает

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Gena (IP-адрес скрыт)
Дата: 05, November, 2020 20:34

Подключения на сервер учитываются все, но ограничение идет по количеству доступных лицензий для АРМов, с правом корректировки записей. А это АРМы Каталогизатор, Администратор (клиентский), Комплектатор, Книговыдача, Книгообеспеченность.

Модули ВебИрбис ПХП, ДжейИрбис, Ирбис 128 Читатель при работе читателей не расходуют лицензии.

Если вы собираетесь писать свой веб-модуль, то просто должны учитывать, что при подключении модуля к серверу, вы сами указываете тип АРМа. В зависимости от этого меняются настройки, права доступа и правило использования лицензий.

Re: Клиентская библиотека ИРБИС64 на языке PHP
Пользователь: Johan (IP-адрес скрыт)
Дата: 06, November, 2020 18:50

спасибо за ответ, все понял

Страницы: <<123
Страница: 3 из 3


Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.