Добрый день, Коллеги!
Нам в суппорт ответили, что у нас возникает ошибка из-за того что не выполняется отписка от сообщения. "Вам нужно либо выполнять отписку самостоятельно либо попробовать использовать ClientMessageBridge https://academy.terrasoft.ua/documents/technic-sdk/7-14/clientmessagebridge-obrabotchik-websocket-soobshcheniya-na-storone-klienta
"
У нас на клиенте подписка на сообщение с сервера. Как нам отписываться от него?
Вот подписка на клиенте:
init: function() {
this.callParent(arguments);
this.subscriptionFunction();
},
subscriptionFunction: function() {
Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE,
this.bpListenerMessage, this);
},
bpListenerMessage: function(scope, message) {
if (!message || message.Header.Sender !== "MessageForDetail") {
return;
}
var message2 = message.Body;
if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetail") {
this.reloadEntity();
this.showInformationDialog("Актуализация дат окончена");
}
else if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetailFix") {
//Здесь в какой-то момент возникает ошибка
this.reloadEntity();
}
}
а вот отправка сообщения на сервере (кусок кода)
Terrasoft.Configuration.MsgChannelUtilities.PostMessage(uc, "MessageForDetail", "UpdateDetailFix");
Нравится
Добрый день.
Решение подобного вопроса обсуждается в этом посте.
Алла Савельева,
Это нам подходит? У нас не Sendbox.
А так будет работать?:
bpListenerMessage: function(scope, message) {
if (!message || message.Header.Sender !== "MessageForDetail") {
return;
}
var message2 = message.Body;
if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetail") {
this.reloadEntity();
this.showInformationDialog("Актуализация дат окончена");
}
else if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetailFix") {
this.reloadEntity();
}
},
destroy: function() {
this.Terrasoft.ServerChannel.un(Terrasoft.EventName.ON_MESSAGE, this.bpListenerMessage, this);
this.callParent(arguments);
},