2011-10-11 21 views
6

Tengo dos aplicaciones web diferentes que necesitan comunicarse entre sí (lo que actualmente puedo lograr usando Silverlight Duplex pero que no escala muy bien). Después de leer sobre SignalR, me gustaría intentarlo pero no pude encontrar mucha documentación sobre cómo hacerlo. Cualquier consejo sobre ho para comenzar sería muy apreciado.Comunicación entre múltiples aplicaciones web usando SignalR

Gracias!

Más información específica: Ejemplo: Aplicación A (Interfaz de oferta): una página web para permitir que múltiples usuarios finales presenten ofertas en determinados artículos.

Aplicación B (interfaz de administración): una página web que permite a un usuario (o podría ser varios usuarios) controlar/controlar las acciones desde la interfaz de oferta.

De modo que cuando un usuario de la Aplicación A hace una oferta por una pieza, necesito una forma de alertar a la Aplicación B de que se ha realizado una oferta. Luego, desde la Aplicación B, si el usuario elige aceptar la oferta, necesito enviar una alerta a la Aplicación A (para actualizar el precio actual, aumentar la oferta, etc.)

+0

¿Puede dar más detalles sobre la configuración específica? ¿Cómo necesitas comunicarte? – davidfowl

+0

He actualizado la solicitud con información más específica. ¡Gracias por tu ayuda! – user989953

Respuesta

2

Honestamente, podría ser más simple hacer que cada aplicación envíe las notificaciones entre sí a través de llamadas de servicio estándar (WCF, ASMX, puntos finales del controlador HTTP, controladores MVC, lo que sea). SignalR es útil en las comunicaciones de navegador a servidor porque no hay una forma consistente de hacer push desde el servidor a un navegador conectado. Pero desde la aplicación web hasta la aplicación web, empujar es simple; La aplicación A simplemente llama a un punto final del servicio en la aplicación B para notificarle que algo está sucediendo.

+0

Esto podría funcionar ... suponiendo que la Aplicación A y la Aplicación B siempre se trabajen juntas como una sola entidad ... que en realidad no es así como se comporta el mundo real ... Diría que esta solución introduce una tonelada entera de otra dolores de cabeza como resultado. Además ... ¿Por qué un lazo apretado cuando puedes unirlo sin apretar? – War

0

Suponiendo que lo que quiere es algo así como ...

usuario (navegador) --- A --- Aplicación Aplicación B --- usuario (navegador)

la comunicación en tiempo real se puede hacer por haciendo lo siguiente ...

Este no es el trabajo de signalR sin embargo algo así como NServiceBus cabría muy bien.

hace referencia a un archivo dll de bus y los concentradores pueden generar eventos y responder a ellos. En su caso, usted tendría tanto SignalR como su tecnología de bus de servicio trabajando en conjunto para permitir la sincronización cruzada de la aplicación.

Así que el proceso es algo así como ...

  1. usuario en incendios de aplicación A hasta navegador y solicitudes de página.
  2. La aplicación A crea una instancia de Hub que se suscribe internamente a eventos de Bus de servicio
  3. El usuario de la aplicación B activa el navegador y solicita la página.
  4. La aplicación B crea la instancia de Hub que internamente se suscribe a los eventos de Bus de servicio
  5. El usuario de cualquiera de las aplicaciones realiza alguna acción que provoca que SignalR reciba un mensaje.
  6. SignalR levanta evento de bus para decir "Este usuario hizo algo" en el bus de servicio.
  7. Otro Hub en otra Aplicación a través de la suscripción al evento recibe una notificación del evento y toma medidas para informar a los usuarios conectados sobre el evento.

Lección que se debe aprender aquí ... No intente hacer que una tecnología haga algo más allá de su propósito ... use la herramienta adecuada para el trabajo.

Esta solución completa se puede realizar con poco más de 20 líneas de código después de obtener la configuración del marco principal.

NServiceBus se puede encontrar aquí:

http://particular.net/nservicebus

Aviso: Puede haber otras soluciones, pero éste sugerencia no asuma esta es la única manera que esto puede ser resuelto, y las únicas tecnologías que ser usado de esta manera. No estoy afiliado de ninguna manera con el producto Particular o NServiceBus.

Cuestiones relacionadas