Total Kontrol/TKT/Протокол обмена с демоном: различия между версиями

Материал из KONANlabs
Перейти к: навигация, поиск
Строка 3: Строка 3:
 
Протокол однонаправленный, от страницы к демону. На любое действие пользователя страница формирует событие. При отсутствии событий страница отправляет запросы на обновление через заданный промежуток времени (атрибут refresh [[Total_Kontrol/TKT/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_XML_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8|элемента daemon]]).  
 
Протокол однонаправленный, от страницы к демону. На любое действие пользователя страница формирует событие. При отсутствии событий страница отправляет запросы на обновление через заданный промежуток времени (атрибут refresh [[Total_Kontrol/TKT/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_XML_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8|элемента daemon]]).  
  
Пакет представляет собой серию текстовых строк, завершаемую пустой строкой (два CRLF в конце пакета). После передачи любого пакета (событие или обновление) страница не закрывает соединение, демон передаёт данные обновления состояния видимых элементов и закрывает соединение сам. Страница закрывает соединение при отсутствии ответа от демона в течение периода eventrate страницы (атрибут элемента daemon).
+
Пакет представляет собой серию текстовых строк, завершаемую пустой строкой (два CRLF в конце пакета). После передачи любого пакета (событие или обновление) страница не закрывает соединение, демон передаёт данные обновления состояния видимых элементов и закрывает соединение сам. Страница закрывает соединение при отсутствии ответа от демона в течение периода eventrate страницы (атрибут [[Total_Kontrol/TKT/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_XML_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8|элемента daemon]]).
  
 +
Пакет может содержать кадры информации об одном или нескольких видимых элементах. Кадр выглядит следующим образом:
 +
<id видимого элемента><CRLF>
 +
<количество параметров><CRLF>
 +
<параметр 1><CRLF>
 +
....
 +
<параметр n><CRLF>
  
 +
Количество и назначение каждого параметра определяется типом видимого элемента (см. [[Total_Kontrol/TKT/Формат_XML_файла]]). Количество кадров в пакете не ограничено.
 +
 +
= Обновления =
  
 
Для экономии трафика обновления привязываются ко времени. Клиент (открытая в браузере страница) передаёт серверу (демону) запрос на обновление с указанием времени предыдущего обновления в миллисекундах (чтобы демон знал, какие именно обновления нужно передать именно этому клиенту), и имя страницы (чтобы демон не обновлял все страницы). Пакет запроса на обновление:
 
Для экономии трафика обновления привязываются ко времени. Клиент (открытая в браузере страница) передаёт серверу (демону) запрос на обновление с указанием времени предыдущего обновления в миллисекундах (чтобы демон знал, какие именно обновления нужно передать именно этому клиенту), и имя страницы (чтобы демон не обновлял все страницы). Пакет запроса на обновление:
  
UPDATE <время> <id стнаницы><CRLF>
+
UPDATE <время> <id страницы><CRLF>
 
<CRLF>
 
<CRLF>
  
 
Время - внутренний счётчик демона, он отдаёт его значение с каждым пакетом данных обновления. Если страница только что открылась - она передаёт демону время 1, демон обновляет всё что есть.
 
Время - внутренний счётчик демона, он отдаёт его значение с каждым пакетом данных обновления. Если страница только что открылась - она передаёт демону время 1, демон обновляет всё что есть.
 +
 +
Ответ демона начинается со строки с текущим счётчиком времени, затем (при наличии необновлённых данных) следуют кадры обновления.
 +
 +
= События =

Версия 18:28, 14 мая 2019

Описание протокола

Протокол однонаправленный, от страницы к демону. На любое действие пользователя страница формирует событие. При отсутствии событий страница отправляет запросы на обновление через заданный промежуток времени (атрибут refresh элемента daemon).

Пакет представляет собой серию текстовых строк, завершаемую пустой строкой (два CRLF в конце пакета). После передачи любого пакета (событие или обновление) страница не закрывает соединение, демон передаёт данные обновления состояния видимых элементов и закрывает соединение сам. Страница закрывает соединение при отсутствии ответа от демона в течение периода eventrate страницы (атрибут элемента daemon).

Пакет может содержать кадры информации об одном или нескольких видимых элементах. Кадр выглядит следующим образом: <id видимого элемента><CRLF> <количество параметров><CRLF> <параметр 1><CRLF> .... <параметр n><CRLF>

Количество и назначение каждого параметра определяется типом видимого элемента (см. Total_Kontrol/TKT/Формат_XML_файла). Количество кадров в пакете не ограничено.

Обновления

Для экономии трафика обновления привязываются ко времени. Клиент (открытая в браузере страница) передаёт серверу (демону) запрос на обновление с указанием времени предыдущего обновления в миллисекундах (чтобы демон знал, какие именно обновления нужно передать именно этому клиенту), и имя страницы (чтобы демон не обновлял все страницы). Пакет запроса на обновление:

UPDATE <время> <id страницы><CRLF> <CRLF>

Время - внутренний счётчик демона, он отдаёт его значение с каждым пакетом данных обновления. Если страница только что открылась - она передаёт демону время 1, демон обновляет всё что есть.

Ответ демона начинается со строки с текущим счётчиком времени, затем (при наличии необновлённых данных) следуют кадры обновления.

События