Вопрос

Отписка от сообщения на сервере

Добрый день, Коллеги!

Нам в суппорт ответили, что у нас возникает ошибка  из-за того что не выполняется отписка от сообщения. "Вам нужно либо выполнять отписку самостоятельно либо попробовать использовать 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");

Нравится

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

Добрый день.

Решение подобного вопроса обсуждается в этом посте.

Алла Савельева,

Это нам подходит? У нас не 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);

            },

 

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