In a project I'm currently working on, we are using Electron as a host. In the Electron main process, which is a normal Node process we need to connect to a downstream back-end that has SignalR endpoints.
However, since SignalR is a JQuery module and neither SignalR nor JQuery are supported on Node, we're a bit stuck. I see the following options:
- Look at some of the JQuery implementations in node and since we use webpack, inject that instead of the normal JQuery into SignalR
- Use an unsupported (and old) Node version of SignalR
- Have an invisible hidden browser window which will host the SignalR and JQuery bits and proxy them through to the main process over IPC
- Compile JQuery myself, including only the modules that SignalR require
- Something else, which you kind people will help me with. :)
Number 1 and 2 scare me as I don't want to be debugging API differences or just plain bugs in the implementations.
Introducing a dependency on jsdom and providing a dom to jquery via that seems to do the trick:
If the above is imported before the signalr script, it works fine.
UPDATE: need to make WebSockets available on window object so websockets transport will work
Good luck with it ;)