SignalR,JQuery和Node

在我正在进行的项目中,我们使用Electron作为主机。 在Electron主进程中,这是一个正常的Node进程,我们需要连接到具有SignalR端点的下游后端。

但是,由于SignalR是一个JQuery模块,Node上既不支持SignalR也不支持JQuery,我们有点卡住了。 我看到以下选项:

  1. 查看节点中的一些JQuery实现,因为我们使用webpack,将其代替普通的JQuery注入SignalR
  2. 使用SignalR的不支持(和旧) 节点版本
  3. 有一个隐藏的隐藏浏览器窗口,它将托管SignalR和JQuery位并通过IPC将它们代理到主进程
  4. 自己编译JQuery,包括SignalR所需的模块
  5. 别的,你善良的人会帮助我。 🙂

1号和2号吓到我,因为我不想调试API差异或只是实现中的普通错误。

引入对jsdom的依赖并通过它提供dom到jquery似乎可以解决这个问题:

var jsdom = require('jsdom').jsdom, document = jsdom(''); global.window = document.defaultView; global.window.WebSocket = require("ws"); 

如果在信号器脚本之前导入上述内容,则可以正常工作。

更新:需要在窗口对象上提供WebSockets,以便websockets传输工作

祝它好运;)