Websocket 使用EnigmaJS连接到socket Qlik Sense Enterprise

Websocket 使用EnigmaJS连接到socket Qlik Sense Enterprise,websocket,qliksense,Websocket,Qliksense,我在QlikSense桌面上构建了一个可以正常工作的mashup,它与通常的 appId = 'engine'; this.session = enigma.create({ schema, url: 'ws://localhost:4848/app/' + appId }) 但是现在我把mashup上传到服务器上,这一次,它的行为和预期的一样。没有。 我尝试将其更改为以下内容,因为服务器没有SSL证书 'ws://domainname:4747/'+appId 但什么都不管

我在QlikSense桌面上构建了一个可以正常工作的mashup,它与通常的

appId = 'engine';
this.session = enigma.create({
    schema,
    url: 'ws://localhost:4848/app/' + appId
})
但是现在我把mashup上传到服务器上,这一次,它的行为和预期的一样。没有。 我尝试将其更改为以下内容,因为服务器没有SSL证书

'ws://domainname:4747/'+appId
但什么都不管用,知道吗

(基本上我的问题是:如何找到我的QIX引擎ws-url?

错误是什么

但一般来说,当使用QS服务器时,为了获得一些数据,您必须进行身份验证

您可以通过侦听所有通信来检查所有接收到的数据,以了解有关错误的更多详细信息:

session.on('traffic:received',data=>console.log('received:',data))

或者,您可以通过设置专用通知“侦听”仅与身份验证相关的数据:

session.on('notification:OnAuthenticationInformation',(authInfo)=>{
console.log(authInfo)
});

查看(向下滚动到
Qlik-Sense-Enterprise
部分)以了解支持哪种类型的身份验证

因此,即使mashup在QlikSense下运行的服务器上,我也需要对mashup和QIX之间的ws连接进行身份验证?我对证书一无所知,所以那会很有趣。谢谢,我会调查所有这些。如果你使用Capabiliy API,你不需要身份验证(因为Qlik会在你的mashup加载之前处理),但是如果你只是上传一个网页并想打开enigma连接,你需要身份验证才能获得会话(虽然您的mashup在QS上,但您正在尝试使用enigma打开一个新会话)。现在请非常非常小心地使用证书!建议您仅将证书用作后端服务(服务器到服务器).Certificates授予对系统的完全权限!在mashup环境中,尝试使用其他身份验证方式,因此现在我获得OnAuthenticationInformation方法响应。我可以获取全局,但在多次获取后,我再次获得
mustAuthenticate:true
。因此,我无法执行会话。open()(global=>global.getDocList()。然后(……任何其他有用的提示?证书和标题都可以,如果您只是原型制作或播放。个人而言,我只在没有用户参与的情况下使用证书。例如,执行一些自动化(不在群集中的服务器正在连接到qlik。而不是用户正在与此服务器交互)。使用
reloadUri
方法(并从url“取消”票证),您将在用户和qlik之间处理身份验证,而您的代码只是使用此交互的结果。我认为这比在(公共)中公开证书/头要安全得多codeIve测试了这种方法,并且效果很好。当我的mashup托管在第三方服务器(由IIS/apache/nginx托管)上时,我使用这种方法有一个问题。不知何故,这种方法在所有情况下都不起作用。我目前对qlik的一个开放问题是如何让它工作……我只是说