Come implementare la Presa.IO con ASP.Net, IISNode, Node.JS e SQL Server per l’evento a base di notifiche push?

Per una notifica di progetto, vorrebbe spingere le notifiche degli eventi fuori. Queste sono cose come account di accesso, modifica profilo, ecc…. e per essere visualizzato il client appropriato. Vorrei discutere alcune idee sul mettere insieme, e avere qualche consiglio sul modo migliore.

Ho notato qui che le modifiche apportate a un CouchDB possono essere rilevati con un _changes stream, preso da un Nodo e un processo che prende il via. Vorrei implementare qualcosa di simile a questo (sto usando SQL Server, ma un punto di ingresso a questo livello non può essere la soluzione migliore).

Invece di CouchDB esempio (rilevamento di database basato su eventi, credo che questo solo complica le cose, dal momento che siamo interessati a eventi del client), stavo pensando che, quando si verifica un evento, ad esempio un login utente, un messaggio viene inviato al server del Nodo con alcuni dettagli dell’evento (RESTful richiesta?). Questo messaggio viene elaborato e trasmesso a tutti i client connessi; il client appropriato visualizza notifica.

Proposto ecosistema:

  • .Net 4.0
  • IIS
  • IISNode
  • Presa.IO
  • Node.JS
  • SQL Server 2008

Questo sarà costruito sulla cima di un progetto esistente utilizzando il .Net framework (IIS, etc.). Molti dei clienti browser non supportano il web socket, di conseguenza usando il Socket.IO è una buona opzione (supporto di fallback). Tuttavia, da quello che Posso vedere, Presa.IO ancora solo supporta solo il tempo di polling attraverso IISNode (che non è davvero un problema).

Un’opzione sarebbe quella di esporre la Presa.IO/Nodo endpoint per tutti i clienti, in modo che il client basato su notifiche possono essere inviate tramite JS per il Nodo server, che trasmette il messaggio. (segue la chat di base-server /client/server esempi).

In alternativa, un endpoint IIS, potrebbe essere utilizzato, ma potrebbe supportare solo il tempo di polling (tramite Socket.IO). Questo sarebbe qualche altro .Netto di back-end, ma può essere complicando l’architettura.

C’è basata su SQL Server notifica di eventi disponibili per il Nodo?

Quale sarebbe l’approccio migliore?

Se non ho avuto la terminologia ecosistema configurazione giusta, si prega di chiarire.

Grazie.

InformationsquelleAutor ElHaix | 2012-03-05



2 Replies
  1. 13

    Ti consiglierei di controllare SignalR prima di considerare l’aggiunta di iisnode/node.js per il mix di tecnologie di pre-esistenti ASP.NET applicazione.

    Per quanto riguarda i websocket, indipendentemente se lo si utilizza ASP.NET o node.js (socket.io), è possibile utilizzare solo HTTP long polling per la bassa latenza notifiche, come websockets non sono supportati da HTTP.SYS/IIS fino a Windows 8. iisnode attualmente non supporta i websocket (anche su Windows 8), ma tale sostegno potrebbe essere aggiunto in seguito.

    Ho fatto qualche ricerca recentemente in materia di MSSQL accesso da node.js. Ci sono un paio di OSS progetti non mancano, alcuni di loro sono madrelingua, piattaforma di estensioni specifiche, qualche tentativo di attuazione di protocollo TDS puramente in JavaScript. Io non sono a conoscenza di qualsiasi che permetta di accedere a SQL funzionalità di notifica. Tuttavia, MSSQL squadra stessa, è di investire in una prima classe di MSSQL driver per node.js, quindi questo è qualcosa da tenere d’occhio andando avanti (https://github.com/tjanczuk/iisnode/issues/139).

    Se si prevede di utilizzare SQL Notifiche di supporto a bassa latenza, notifiche, vi consiglio vivamente di iniziare con i benchmark delle prestazioni che simulano il livello desiderato di traffico a livello di SQL server. SQL Notifiche sono state inteso principalmente come un meccanismo per aiutare a mantenere in memoria cache coerenti con il contenuto del database, in modo che si può o non può soddisfare i requisiti di notifica scenario. Come minimo queste misure di aiuto per avviare un progetto migliore.

    • Grazie Tomasz. È un ottimo punto sull’implementazione di SignalR. Tuttavia, il problema è che il progetto è frammentato tra eredità codice ASP e .Net code, quindi penso che per ora, Javascript-based di comunicazione (non C#) sarebbe probabilmente la scelta migliore. Se io sono sempre SignalR concetto correttamente, in futuro, quando il progetto è completamente migrato .Net, per poi passare a SiglanR. Ci sono alcuni buoni walk-through di Node.JS, IISNode, e Presa.IO? Hanno visto anche un paio di opzioni di SQL Server, ma eccessivo per questa applicazione.
    • Correzione: Implementare un SignalR approccio .Net 4.0, come un servizio WCF che può essere consumato dal codice ASP classico. Risolto.
    • Tomasz – fare questa limitazione chiaro nel iisnode documenti? Ho installato iisnode e nodejs sul mio Windows casella con il principale obiettivo di usare i websocket sostegno – così mi sembra le mie scelte sono utilizzando nginx o apache su Windows, o lo spostamento di Linux.
    • user123067 – perché non usare node.exe senza un webserver?
  2. 2

    Mi raccomando utilizza Pusher. Che è quello che usiamo e lo rende facile da attuare in quanto è una soluzione hosted. Quindi collegarlo e farlo funzionare è davvero facile. Non costa molto, a meno che si sta andando a spingere una quantità pazzesca di messaggi attraverso di essa su larga scala.

    • Ciao Matt – avete un link per il ‘Pusher’ ??

Lascia un commento