Para un proyecto de notificación, quisiera enviar notificaciones de eventos. Estas son cosas como iniciar sesión, cambiar de perfil, etc., y mostrarse al cliente apropiado. Me gustaría discutir algunas ideas para armarlo y obtener algunos consejos sobre el mejor enfoque.¿Cómo implementar Socket.IO con ASP.Net, IISNode, Node.JS y SQL Server para notificaciones push basadas en eventos?
Noté here que los cambios realizados en un CouchDB se pueden detectar con un flujo _changes, recogidos por Node, y se inicia un proceso. Me gustaría implementar algo como esto (estoy usando SQL Server, pero un punto de entrada en este nivel puede no ser la mejor solución).
En lugar de seguir el ejemplo de CouchDB (detectar eventos basados en bases de datos, creo que esto solo complica las cosas, ya que estamos interesados en eventos de clientes), estaba pensando que cuando ocurre un evento, como un inicio de sesión de usuario, se envía un mensaje al servidor del nodo con algunos detalles del evento (¿Solicitud REST?). Este mensaje se procesa y transmite a todos los clientes conectados; el cliente apropiado muestra la notificación.
ecosistema propuesto:
- .Net 4.0
- IIS
- IISNode
- Socket.IO
- Node.JS
- SQL Server 2008
Esta voluntad ser construido en parte superior de un proyecto existente que utiliza .Net framework (IIS, etc.). Muchos de los navegadores de los clientes no son compatibles con los sockets web, por lo que el uso de Socket.IO es una buena opción (soporte de respaldo). Sin embargo, a partir de I can see, Socket.IO solo sigue siendo compatible con un sondeo largo a través de IISNode (lo cual no es realmente un problema).
Una opción sería exponer el punto final Socket.IO/Node a todos los clientes, de modo que las notificaciones basadas en el cliente se puedan enviar a través de JS al servidor Nodo, que transmite el mensaje. (sigue los ejemplos básicos de chat-servidor/cliente/servidor).
De forma alternativa, se podría usar un punto extremo IIS, pero solo podría admitir un sondeo largo (a través de Socket.IO). Esto ofrecería algo de procesamiento .Net back-end adicional, pero puede estar complicando demasiado la arquitectura.
¿Hay notificaciones de eventos basadas en SQL Server disponibles para Node?
¿Cuál sería el mejor enfoque?
Si no obtuve la configuración del ecosistema terminológico correcta, por favor aclare.
Gracias.
Gracias Tomasz. Usted hace una muy buena observación sobre la implementación de SignalR. Sin embargo, el problema es que el proyecto está fragmentado entre el código ASP heredado y el código .Net, por lo que creo que, por el momento, la comunicación basada en Javascript (no C#) probablemente sea la mejor opción. Si obtengo el concepto SignalR correctamente, en el futuro, cuando el proyecto se migre por completo a .Net, cambie a SiglanR. ¿Hay algunos buenos recorridos de Node.JS, IISNode y Socket.IO? También examiné algunas opciones de SQL Server, pero sobretodo para esta aplicación. – ElHaix
Corrección: Implemente un enfoque SignalR en .Net 4.0 como un servicio WCF que puede ser consumido por el código ASP clásico. Resuelto – ElHaix
Tomasz - ¿podría hacer esta limitación más clara en los documentos iisnode? Instalé iisnode y nodejs en mi cuadro de Windows con el objetivo principal de usar el soporte de websocket, por lo que parece que mis opciones son usar nginx o apache en Windows o moverme a Linux. – jnoss