|
Версия 6.3 |
|
| |||||||||||||||||||||||
Настройка Модуля XIMSSДля настройки параметров модуля XIMSS используйте Веб Интерфейс Администратора. Откройте страницу Доступ в разделе Установки:
Используйте эту настройку для того, чтобы указать, какую информацию модуль XIMSS должен сохранять в Журнале работы Сервера. Обычно используется уровень Основное (отчёты о передаче сообщений) или уровень Проблемы (передача сообщений и не фатальные ошибки). В случае, если в работе модуля XIMSS возникают проблемы, возможно, целесообразным будет увеличить детализацию до уровня Подробности или Всё: в этом случае в Журнал работы Сервера будет записываться также более подробная информация о работе модуля на уровне протокола или на уровне соединений. Когда проблема решена, верните настройку Уровень Журнала в её обычное значение, иначе Системный Журнал будет очень быстро увеличивать свой размер. Записи, помещённые модулем XIMSS в Журнал работы Сервера, имеют пометку XIMSSI. Когда вы указываете ненулевое значение в настройке Максимальное число Каналов, Модуль XIMSS создаёт так называемый Приёмник. Модуль начинает принимать все соединения по протоколу XIMSS, которые устанавливают клиенты для взаимодействия с Сервером. Эта настройка используется для того, чтобы ограничить число одновременных соединений, которое может принимать модуль XIMSS. Если открыто предельное число соединений, то модуль будет отказывать в приёме новых соединений. В этом случае клиентские приложения должны попытаться соединиться позднее. По умолчанию, Приёмник модуля XIMSS принимает незашифрованные соединения на TCP порт 11024. Нажмите на ссылку Приёмник для того, чтобы настроить порт Приёмника XIMSS. Соединения XIMSS с Другими МодулямиСоединения по протоколу XIMSS могут устанавливаться на TCP порты, обслуживаемыми другими модулями CommuniGate Pro. Если в соединении, установленном с модулем HTTP, первым полученным символом будет <, то HTTP модуль передаёт соединение в модуль XIMSS. При передаче соединения:
Если все пользователи устанавливают соединения по протоколу XIMSS через порты других Модулей, то вы можете отключить Приёмник XIMSS, обнулив значения портов. Безопасность Flash КлиентовКогда Flash клиент соединяется с XMLSocket сервера (таким, как модуль XIMSS CommuniGate Pro), он может отправить специальный запрос policy-file-request (запрос файла политики). Модуль XIMSS направляет в ответ XML документ, позволяющий клиенту получать доступ к любому порту Сервера. Сессии XIMSSКогда пользователь аутентифицирован, модуль XIMSS создаёт сессию XIMSS. Для взаимодействия с этой сессией может использоваться текущее соединение TCP модуля XIMSS.
Сессия XIMSS может быть создана и вне модуля XIMSS, используя специальные запросы, отправляемые модулю HTTP User. Дополнительную информацию смотрите в разделе Протокол XIMSS. Записи о сессии XIMSS, помещаемые в Журнал работы Сервера, имеют пометку XIMSS. Привязка к HTTPКлиентское приложение может работать с интерфейсом XIMSS по протоколу HTTP.
Для создания новой сессии XIMSS, клиентское приложение должно отправить HTTP запрос на Вход. Когда сессия XIMSS создана, клиентское приложение может отправлять в неё запросы протокола XIMSS и получать ответы протокола XIMSS, используя HTTP запросы. Клиентские приложения могут использовать запросы HTTP GET и POST. Откройте установки Модуля HTTPU и найдите раздел Доп. протоколов: Установка Доступ определяет, клиенты из каких сетей могут создавать сессии XIMSS, используя протокол HTTP. HTTP ВходДля начала XIMSS сессии, клиентское приложение должно отправить HTTP запрос в модуль HTTPU CommuniGate Pro, используя следующие URL:
Если параметр userName отсутствует, то Сервер пытается аутентифицировать запрос, используя TLS Сертификат Клиента (если он задан) или используя методы аутентификации HTTP. Запрос на URL /ximsslogin/ может содержать тело text/xml. В этом случае, операция входа не выполняется.
C:GET /ximsslogin/ HTTP/1.1
Host: myserver.com Content-Type: text/xml Content-Length: 42 <XIMSS><listFeatures id="list" /><XIMSS> S:HTTP/1.1 200 OK Content-Length: 231 Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS><<features id="s" domain="x.domain.dom"><starttls/><sasl>LOGIN</sasl><sasl>PLAIN</sasl><sasl>CRAM-MD5</sasl><sasl>DIGEST-MD5</sasl><sasl>GSSAPI</sasl><nonce>2C3E575E5498CE63574D40F18D00C873</nonce><language>german</language><signup/></features><response id="s"/></XIMSS> Если пользователь был успешно аутентифицирован и XIMSS сессия была успешно создана, то в ответе на запрос HTTP Входа содержится сообщение session со строкой-идентификатором сессии. Обратите внимание на то, что сообщение session не содержит атрибута id. Пример:
C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?ackSeq=0 HTTP/1.1
Альтернативный URL может использоваться для начала сессии XIMSS посредством TLS Сертификата Клиента или посредством других методов аутентификации HTTP: Host: myserver.com Content-Length: 0 S:HTTP/1.1 200 OK Content-Length: 105 Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS><session urlID="562-kAI2lxNBR4ApmHg4wiW9" userName="account@domain" realName="J. Smith" version="6.1.2" /></XIMSS>
Этот метод полезен если приложение сначала получает HTML страницу или некоторый другой документ, используя /auth/ область, заставляя браузер запросить полномочия клиента, а затем приложение создаёт XIMSS сессию для этого же пользователя, так как браузер переотправит эти же полномочия при отправке запроса на URL /auth/ximsslogin/. Синхронные Коммуникации по HTTPКлиент должен направлять в созданную сессию XIMSS запросы, используя следующие URL:
Тело HTTP запроса должно содержать один элемент <XIMSS /> с ноль, одним или более запросами XIMSS протокола. Сервер возвращает один элемент <XIMSS /> в теле HTTP ответа. Этот элемент содержит сообщения response протокола XIMSS (одно для каждого отправленного XIMSS запроса, в том же порядке); все синхронные сообщения данных созданы в ответ на переданные XIMSS запросы. Пример:
C:POST /Session/562-kAI2lxNBR4ApmHg4wiW9/sync HTTP/1.1
Host: myserver.com Content-Length: nnn <XIMSS><noop id="i1" /><readTime id="i2" /></XIMSS> S:HTTP/1.1 200 OK Content-Length: nnn Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS><response id="i1"/><currentTime id="i2" gmtTime="20070502T083313" localTime="20070502T003313"/><response id="i2"/></XIMSS> Если клиент XIMSS работает в ненадёжной среде, где может быть необходимо посылать запросы HTTP повторно, каждый непустой запрос HTTP должен содержать параметр reqSeq. Значение параметра должно увеличиваться на 1 при посылке каждого нового запроса HTTP. Клиентское приложение может использовать "пустой запрос" (HTTP запрос без тела) для того, чтобы прочитать асинхронные сообщения данных XIMSS. При получении такого пустого запроса, Сервер проверяет наличие ожидающих асинхронных сообщений данных для указанной сессии. Если асинхронные сообщения данных отсутствуют, то запрос удерживается до наступления одного из следующих событий:
Пустой запрос может задавать время ожидания в параметре maxWait (число секунд). Если сообщения данных не были получены, то Сервер отправляет ответ с пустым элементом <XIMSS/>, без каких-либо атрибутов. Если были получены какие-либо сообщения данных, то Сервер отправляет ответ ("асинхронный ответ"), содержащий один элемент <XIMSS/> с атрибутом respSeq. Этот атрибут содержит последовательный номер для этого элемента <XIMSS/> ответа. Сервер хранит последний "асинхронный ответ", сформированный для каждой сессии. Каждый пустой запрос должен содержать параметр ackSeq. В нём должно находится значение respSeq из последнего полученного асинхронного ответа. Когда Сервер получает пустой запрос со значением ackSeq равным значению respSeq последнего хранимого сформированного асинхронного ответа, то он считает доставку этого ответа "подтверждённой" и удаляет его. Когда Сервер получает пустой запрос со значением ackSeq равным значению respSeq последнего хранимого сформированного асинхронного ответа, уменьшенного на единицу (respSeq-1), и последний сформированный ответ все ещё хранится, то Сервер отправляет этот ответ клиенту повторно. В результате, если клиент сталкивается с ошибкой при передаче во время выполнения HTTP транзакции "пустого запроса", то он может отправить пустой запрос повторно. Пустой запрос без параметра ackSeq подтверждает получение всех хранимых сформированных "асинхронных ответов". Когда сервер возвращает пустой элемент <XIMSS/>, следующий пустой запрос может либо не содержать параметр ackSeq совсем, либо тот же параметр ackSeq, как в последнем пустом запросе. Поскольку последующие пустые запросы могут использовать всё тот же URL запроса с теми же параметрами, платформа клиента может немедленно возвращать закешированный ранее элемент <XIMSS/> без фактической отправки запроса на Сервер.
C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?maxWait=90&ackSeq=0&reqSeq=0 HTTP/1.1
Host: myserver.com Content-Length: 0 ...необязательная пауза (до 90 секунд)... S:HTTP/1.1 200 OK Content-Length: 10 Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS/> C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?maxWait=90&ackSeq=0&reqSeq=1 HTTP/1.1 Host: myserver.com Content-Length: 0 ...необязательная пауза (до 90 секунд)... S:HTTP/1.1 200 OK Content-Length: nnn Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS respSeq="1"><folderReport folder="INBOX" mode="notify" /></XIMSS> response did not reach the client, client is resending the request C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?maxWait=90&ackSeq=0&reqSeq=1 HTTP/1.1 Host: myserver.com Content-Length: 0 S:HTTP/1.1 200 OK Content-Length: nnn Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS respSeq="1"><folderReport folder="INBOX" mode="notify" /></XIMSS> C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?maxWait=90&ackSeq=1&reqSeq=2 HTTP/1.1 Host: myserver.com Content-Length: 0 ...необязательная пауза (до 90 секунд)... S:HTTP/1.1 200 OK Content-Length: 10 Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS/> Асинхронные Коммуникации по HTTPКлиент может отправлять запросы в созданную XIMSS сессию таким образом, что все ответы (включая сообщения response и синхронные сообщения данных) будут возвращаться только в ответ на "пустой запрос".
Тело запроса HTTP должно содержать один элемент <XIMSS /> с ноль, одним или более запросами протокола XIMSS. Все генерируемые сообщения response (по одному для каждого запроса XIMSS, отправляемые в том же порядке) и все синхронные сообщения данных, созданные в ответ на переданные XIMSS запросы, передаются повторно в XIMSS сессию как асинхронные сообщения. Сервер возвращает пустой ответ HTTP. Пример (одно соединение, опрос):
C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?maxWait=0&ackSeq=0&reqSeq=0 HTTP/1.1
Пример (2 соединения, ожидание): Host: myserver.com Content-Length: 0 S:HTTP/1.1 200 OK Content-Length: 10 Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS/> C:POST /Session/562-kAI2lxNBR4ApmHg4wiW9/async HTTP/1.1 Host: myserver.com Content-Length: nnn <XIMSS><noop id="i1" /><readTime id="i2" /></XIMSS> S:HTTP/1.1 200 OK Content-Length: 0 Connection: keep-alive Content-Type: text/plain;charset=utf-8 Server: CommuniGatePro/5.3 C:GET /Session/562-kAI2lxNBR4ApmHg4wiW9/get?maxWait=0&ackSeq=0&reqSeq=1 HTTP/1.1 Host: myserver.com Content-Length: 0 S:HTTP/1.1 200 OK Content-Length: nnn Connection: keep-alive Content-Type: text/xml;charset=utf-8 Server: CommuniGatePro/5.3 <XIMSS respSeq="1"><response id="i1"/><currentTime id="i2" gmtTime="20070502T083313" localTime="20070502T003313"/><response id="i2"/></XIMSS>
Мониторинг активности XIMSSВы можете наблюдать за активностью Модуля XIMSS через Веб Интерфейс Администратора. Чтобы открыть страницы наблюдения за Доступом, нажмите на ссылку Доступ в разделе Наблюдения:
Активность модуля XIMSS можно наблюдать с помощью Элементов Статистики CommuniGate Pro. |