我有一个我一直在开发的 Ember.js 应用程序,它运行良好。我现在正在尝试集成一个名为 JsSIP 的 SIP over Websockets 库。我的 Ember 应用程序和单独的概念验证 SIP 应用程序都可以独立运行;但是,一旦我将两者集成在一起,我就会开始在 SIP 库中看到奇怪的错误。我终于把事情缩小到这是两个 API 之间的命名空间问题
我已经看到了至少一个关于 Ember.js 和其他执行任何类型 DOM 操作的库(例如 JQuery Mobile)之间命名空间冲突的其他 SO 问题。据我所知,我使用的 SIP 库对 DOM 的实际操作很少。我已经看到了一些使用 RequireJS 的建议,虽然我真的不想模块化我的客户端,甚至不知道它是否会解决命名空间冲突。将东西包装在 Ember.Namespace 中会有帮助吗?
我创建了一个超级简单的JSFiddle来演示核心问题。非常感谢任何关于我如何解决这两个库之间的问题的建议。这是 Fiddle 中包含的基本代码:
// JsSIP code
try
{
var configuration = {
'uri': "example@sip2sip.info",
'password': "password",
'trace_sip': true,
'ws_servers': "ws://example.com"
};
myPhone = new JsSIP.UA(configuration);
myPhone.start();
}
catch(e)
{
console.log(e.message);
}
// Ember code
window.App = Ember.Application.create();