Как использовать новый сокет easyXDM в существующем приложении с опцией noConflict - PullRequest
0 голосов
/ 02 ноября 2018

Во-первых, я прочитал этот существующий: Несколько easyXDM на одной странице К сожалению, это не помогает мне с моими проблемами.

У меня есть существующее приложение, которое уже использует сокет easyXDM в качестве потребительского сайта. Сейчас я разрабатываю новое приложение, которое будет встраивать существующее приложение, поэтому оно станет потребителем и поставщиком.

Существующее приложение использует easyXDM просто из глобальной области видимости без пространства имен и без isHost опция конфигурации сокета.

Когда я сейчас добавляю свою новую библиотеку и пытаюсь создать новый сокет, я получаю ошибку

window-manager: TypeError: getParentObject(...).Fn.get(...) is not a function TypeError: getParentObject(...).Fn.get(...) is not a function

при открытии второго гнезда.

Поэтому я попытался использовать опцию noConflict. К сожалению, это устанавливает

window.easyXDM = _easyXDM = undefined

в вызове easyXDM.noConflict, поэтому мое существующее приложение и сокет больше не работают, так как window.easyXDM исчезает.

Когда я изменяю свое существующее приложение, чтобы оно также использовало экземпляр easyXDM, возвращаемый из noConflict, это так же, как когда я просто использую window.easyXDM.

Когда я создаю второй новый экземпляр с noConflict из моего первого нового экземпляра, моя новая библиотека, в конечном счете, нуждается в существующей реализации, расположении и имени, где находится easyXDM.

Так что ИМХО решение noConflict в easyXDM довольно бессмысленно. Или как использовать несколько сокетов, особенно один в качестве потребителя и один в качестве поставщика, на одной странице без какой-либо связи между реализациями?

// existing
var socket = new easyXDM.socket(cfg);

// addon
var My = {
   easyXDM: easyXDM.noConflict("My"), // not working, no easyXDM anymore
   open: function (cfg) {
       this.socket = new this.easyXDM.socket(cfg);
   }
};
My.open(cfg);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...