2016-03-26 1 views
1

Dans un projet sur lequel je travaille actuellement, nous utilisons Electron en tant qu'hôte. Dans le processus principal d'Electron, qui est un processus de nœud normal, nous devons nous connecter à un serveur en aval qui a des points d'extrémité SignalR. Toutefois, étant donné que SignalR est un module JQuery et que ni SignalR ni JQuery ne sont pris en charge sur le nœud, nous sommes un peu bloqués. Je vois les options suivantes:SignalR, JQuery et Node

  1. Regardez quelques-unes des implémentations JQuery dans node et depuis nous utilisons webpack, injecter qu'au lieu de la JQuery normale dans SignalR
  2. Utilisez un non pris en charge (et vieux) Node version of SignalR
  3. Si une fenêtre de navigateur caché invisible qui accueillera les bits SignalR et JQuery et les proxy par le processus principal sur IPC
  4. Compile JQuery moi-même, y compris seulement les modules qui SignalR nécessitent
  5. Quelque chose d'autre, avec lequel vous aimeriez m'aider. :)

Les numéros 1 et 2 me font peur car je ne veux pas déboguer les différences d'API ou simplement les bugs dans les implémentations.

+0

https://www.npmjs.com/package/signalr-client. Il cherche des contributeurs. Après une certaine amélioration peut être signalr aide de la communauté j'aime open source :) –

Répondre

2

Présentation d'une dépendance à l'égard jsdom et en fournissant un dom à jquery par qui semble faire l'affaire:

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

Si ce qui précède est importé avant le script signalr, il fonctionne très bien.

MISE À JOUR: nécessité de faire WebSockets disponible sur l'objet de fenêtre pour le transport de websockets travaillera

Bonne chance avec elle;)

+0

Merci beaucoup pour cela: 'global.window.WebSocket = require (" ws ");' – Claus