Здравствуйте. Исследую следующий кейс: отключение поддержки веб-сокетов на сервере портала для портальных пользователей, при этом для остальных пользователей CRM поддержка вебсокетов будет включенной.

Вопросы:

1. Допустима ли работа кластера серверов приложений при схеме: 1 и более серверов CRM, 1 и более серверов клиентского Портала, 1 сервер Портала с отключенными вебсокетами и СУБД?

2. Читал, что при отключении веб-сокетов не будут работать, кроме всего прочего, и пользовательские бизнес-процессы. Можете подробнее рассказать о том, что именно не будет работать?

 

 

Нравится

2 комментария

Во-первых, не «пользовательские бизнес-процессы», а действия пользователя в бизнес-процессах: открытие ему разных страниц.

Если их отключить, вся интерактивность, когда система сама что-то показывает пользователю, сломается.

 

Специально работу в таком режиме никто не тестировал, вы можете проверить, отключив веб-сокеты, зайдя на сайт под портальным пользователем и увидев сообщения об ошибках разных механизмов системы в консоли браузера.

 

Более подробно об этой технологии и её настройке есть в статье.

Зверев Александр,

 

Ясно. Будем тестировать работу Портала с отключенной поддержкой веб-сокетов.

Показать все комментарии

Добрый день

Есть у меня проект что я дорабатываю, на сегодня он работает на конфигурации 7.14.2. Препрод, 7.13.4 - Девелоп стенд, 7.14.2 - Продакшен. И только сегодня заметил что в консоли показывается что Инициализация WebSocket-ов произошла а подаешь команду для проверки Terrasoft.ServerChannel.ping() , вылетает на версии платформы 7.14.2 ошибка 

 

Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Terrasoft.Messaging.Common.SimpleMessage' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.

Path '', line 1, position 1.

   at Terrasoft.Common.Json.Json.Deserialize[T](String value, Func`2 func)

   at Terrasoft.Messaging.MicrosoftWSService.WebSocketHandlerExt.OnMessage(String message)

 

Хотя на 7.13.4 - Девелоперском стенде ВебСокеты работают. Настройки сокетов везде одинаковые. Везде настройки следующие 

- коммент убран

 

- коммент убран

Еще раз повторюсь на 7.13.4 все работает. 

Прошу помощи и подсказки что может быть не так и почему на 7.14.2 не работает. Или нужно до 7.14.3 обновится так как это был баг 7.14.2. Я как только не дебажил я понять не могу почему Пинг, Понг не проходит. А раз это не проходит ВебСокеты так же не работают корректно.

Нравится

1 комментарий
Лучший ответ

Добрый вечер! Так же столкнулся с данной проблемой, в ТП ответили, что на конфигурации 7.14.2 не работает именно данная функция Terrasoft.ServerChannel.ping(), веб-сокеты работают, что бы проверить работоспособность веб-сокетов, создайте БП со стартовым таймером, если отработает, значит все ок. В ТП сказали, что в следующих версиях поправят функцию "Terrasoft.ServerChannel.ping()". 

Добрый вечер! Так же столкнулся с данной проблемой, в ТП ответили, что на конфигурации 7.14.2 не работает именно данная функция Terrasoft.ServerChannel.ping(), веб-сокеты работают, что бы проверить работоспособность веб-сокетов, создайте БП со стартовым таймером, если отработает, значит все ок. В ТП сказали, что в следующих версиях поправят функцию "Terrasoft.ServerChannel.ping()". 

Показать все комментарии

Добрый день, при попытке удаление какой либо записи с правами Supervisor'а в консоли браузера появляется строка "Метод handler устарел. Вместо него используйте click event" а в случае подтверждения удаления "Метод onDeleteAccept устарел. Вместо него используйте onMultiDeleteAccept". Удаление не происходит, появляется диалоговое окно "Удаление произошло с ошибкой, обратитесь к системному администратору". Кто-то сталкивался с подобной проблемой?

P.s. система стоит на Win Server 2008R2 который не поддерживает web-сокеты, но я не думаю что с обновлением bpm отказался от поддержки sw-сокетов совсем.

Нравится

2 комментария

Вопрос решился настройкой Web.config оказывается после обновления его надо заново настраивать

Сафронов Иван Александрович пишет:

Вопрос решился настройкой Web.config оказывается после обновления его надо заново настраивать

А вы просто подменяли конфиг от предыдущей версии что-ль? Так не будет работать, поскольку в конфигах есть ссылки на асембли новых версий.  

Показать все комментарии

Коллеги, добрый день! Выполняли настройку вебсокетов по мануалу https://academy.terrasoft.ru/documents/service-enterprise/7-9/nastroyka-...
Все, что нужно, во всех конфигах указали, но после их сохранения и перезапуска IIS все равно появляется оповещение, что вебсокеты настроены некорректно. В чем может быть причина?
P.S. Указывали пользовательский порт для подключения "0" как в документации, и 443, т. к. сайт работает на https

Нравится

5 комментариев

Здравствуйте!

При работе по защищенному протоколу (https) для работы веб-сокетов по 443 порту необходимо в веб-конфиге указать следующие параметры:

<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService,Terrasoft.Messaging.MicrosoftWSService" encrypted="false" portForClientConnection="0" maxConnectionNumber="100" clearIdleSession="false" clearIdleSessionInterval="120" />

Дополнительно убедитесь, что не происходит блокировки на уровне брандмауэра Windows. Если он включен, то должны быть созданы правила для входящего и исходящего подключения.

Илья, спасибо. Вопрос решен!

Илья, еще раз здравствуйте! Настраивала вебсокеты в соответствии с документацией и вашими рекомендациями для двух приложений. На одном, как я выше писала, вопрос решился. Для 2го все настраивала по аналогии, но все равно вебсокеты настроены некорректно. В чем еще может быть проблема?

Добрый день, Елена.

В случае если приложения развернуты на одном сервере и если для двух сайтов во флаге portForClientConnection указан один и тот же порт, рекомендуем указать разные. Проверьте доступность портов.

Также, на работу Websockets может влиять наличие антивируса, который блокирует подключение (необходимо включить адрес bpm'online в список надежных, либо отключить антивирус), Firewall на сервере приложения блокирует подключение (необходимо создать два исключения - для входящего потока и для исходящего потока для порта, по которому происходит подключение), наличием расширений браузера Chrome (необходимо отключить расширения, которы блокируют работу).

Правила создала, но это тоже не помогло. Все оказалось прозаичнее: не были включены компоненты для протокола вебсокетов для диспетчера IIS

Показать все комментарии