Настройка WebSocket

Настройка обратного прокси выполняется в рамках настройки механизма отправки сообщений через WebSocket канал.

WebSocket канал может быть использован:

  • Для обмена сообщениями между сервером и встроенным приложением (в SMP используются соответствующие методы api).

  • Для автоматического обновления списка комментариев, которое позволяет отображать новые комментарии без перезагрузки страницы браузера. Автообновление применяется для контента "Комментарии" со списком комментариев текущего объекта.

    Настройка автообновления списка комментариев также включает в себя настройку параметров WebSocket в конфигурационном файле dbaccess.properties.

  • Для получения и отправки текстовых сообщений во внешние каналы, например, Telegram, Вконтакте, Чат на сайте.

  • Для отправки сообщений о событиях с объектом.

Настройка обратного прокси Nginx

Пример конфигурации (где tomcat_address — адрес сервера Apache Tomcat, 8080 — порт, на котором он работает):

Copy
location /sd/ws {
  proxy_pass http://tomcat_address:8080;
  proxy_read_timeout 300;
  proxy_send_timeout 300;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Forwarded-Port $server_port;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
}

Настройка обратного прокси IIS

Протокол AJP не поддерживает веб-сокеты. Для работы веб-сокетов рекомендуется использовать сервер IIS с помощью расширения Application Request Routing (ARR)

Для работы WebSockets должен быть установлен соответствующий модуль поддержки данного протокола в IIS:

  1. Установите модуль, используя "Диспетчер серверов" меню "Добавить роли и компоненты".

  2. После установки модуля перезапустите службу IIS.
  3. Убедитесь, что установленный модуль используется, перейдя в пункт "Модули" в необходимом "сайте" IIS.

    Если отмеченного модуля нет в списке, то необходимо добавить его, перейдя в "Выполняется настройка собственных модулей" и отметив пункт "WebSocketModule".

  4. В настройках переопределения URL-адресов добьте следующие серверные переменные:

    • HTTP_X_FORWARDED_HOST
    • HTTP_X_FORWARDED_PROTO
    • HTTP_X_FORWARDED_SERVER

  5. Затем в правиле, отвечающем за перенаправление в Apache Tomcat, добавьте значения для серверных переменных:

    • HTTP_X_FORWARDED_HOST: значение {HTTP_HOST}, заменить на True;
    • HTTP_X_FORWARDED_SERVER: значение {HTTP_HOST}, заменить на True;
    • HTTP_X_FORWARDED_PROTO: значение https (если используется HTTP, то указать http), заменить на False.

  6. В параметрах Apache Tomcat в разделе Java — Java Options добавьте опцию:

    -Dorg.apache.tomcat.websocket.DISABLE_BUILTIN_EXTENSIONS=true

    Важной особенностью при работе с IIS является необходимость добавления Java-опции в параметрах запуска Apache Tomcat.

Особенность работы механизма в браузере Mozilla Firefox

Из-за встроенной в браузер оптимизации использования памяти и производительности приложение на неактивной вкладке ограничивается в ресурсах. Поэтому сообщения о редактировании и изменении объекта на неактивные вкладки могут не приходить.