Per un progetto di notifica, si desidera inviare notifiche di eventi. Queste sono cose come login, cambio di profilo, ecc., E per essere mostrate al cliente appropriato. Vorrei discutere alcune idee su come metterlo insieme e ricevere qualche consiglio sull'approccio migliore.Come implementare Socket.IO con ASP.Net, IISNode, Node.JS e SQL Server per le notifiche push basate sugli eventi?
Ho notato here che le modifiche apportate a un CouchDB possono essere rilevate con un flusso _changes, prelevato dal nodo e viene avviato un processo. Mi piacerebbe implementare qualcosa di simile (sto usando SQL Server, ma un punto di ingresso a questo livello potrebbe non essere la soluzione migliore).
Invece di seguire l'esempio di CouchDB (rilevando eventi basati su database, penso che questo complica le cose, dal momento che siamo interessati a eventi client), stavo pensando che quando si verifica un evento, come un login utente, quindi un messaggio viene inviato al server Node con alcuni dettagli dell'evento (richiesta RESTful?). Questo messaggio viene quindi elaborato e trasmesso a tutti i client connessi; il client appropriato visualizza la notifica.
ecosistema proposto:
- .Net 4.0
- IIS
- IISNode
- Socket.IO
- Node.JS
- SQL Server 2008
Questa volontà essere costruito su parte superiore di un progetto esistente che utilizza il framework .Net (IIS, ecc.). Molti dei browser dei client non supportano i socket Web, quindi l'uso di Socket.IO è una buona opzione (supporto fallback). Tuttavia, da quello I can see, Socket.IO supporta ancora solo il polling lungo tramite IISNode (che non è realmente un problema).
Un'opzione sarebbe quella di esporre l'endpoint Socket.IO/Node a tutti i client, in modo che le notifiche basate su client possano essere inviate tramite JS al server Node, che trasmette il messaggio. (segue gli esempi base di chat-server/client/server).
In alternativa, è possibile utilizzare un endpoint IIS, ma potrebbe supportare solo il polling lungo (tramite Socket.IO). Ciò offrirebbe un'ulteriore elaborazione back-end .Net, ma potrebbe complicare eccessivamente l'architettura.
È disponibile una notifica di evento basata su SQL Server per il nodo?
Quale sarebbe l'approccio migliore?
Se non si ottiene correttamente la configurazione dell'ecosistema terminologico, si prega di chiarire.
Grazie.
Grazie Tomasz. Sei un ottimo punto per implementare SignalR. Tuttavia, il problema è che il progetto è frammentato tra codice ASP legacy e codice .Net, quindi penso che per ora la comunicazione basata su Javascript (non C#) sarebbe probabilmente la scelta migliore. Se ricevo correttamente il concetto SignalR, in futuro, quando il progetto viene completamente migrato su .Net, passare a SiglanR. Esistono alcuni buoni passaggi di Node.JS, IISNode e Socket.IO? Ha anche esaminato alcune opzioni di SQL Server, ma eccessivo per questa app. Correzione – ElHaix
: Implementare un approccio SignalR in .Net 4.0 come servizio WCF che può essere utilizzato dal classico codice ASP. Risolto. – ElHaix
Tomasz: potresti rendere questa limitazione più chiara nei documenti iisnode? Ho installato iisnode e nodejs sulla mia scatola di Windows con l'obiettivo principale di utilizzare il supporto websocket - quindi ho l'impressione che le mie scelte siano l'utilizzo di nginx o apache su Windows o il passaggio a Linux. – jnoss