2014-07-08 1 views
0

Je suis dans une situation où un utilisateur peut modifier un programme de grille Excel en ligne. J'aimerais pouvoir afficher un message indiquant que l'horaire est modifié dans une autre fenêtre. Cependant, comment puis-je le faire avec une fenêtre ouverte, et si la fenêtre précédente a été fermée avec SignalR. Pour les autres sessions, je veux juste indiquer qu'un autre utilisateur est en train de modifier le planning.SignalR et une fenêtre de navigateur pour une session à la fois

+0

Assez vague ce que vous demandez exactement. Pouvez-vous fournir un scénario simple? –

+0

Affichez la page de planification, ouvrez l'onglet et accédez à la même page de planification, mais affichez le message indiquant que la page de planification est déjà affichée. –

Répondre

0

Il pourrait être plus facile à utiliser localStorage pour communiquer entre plusieurs onglets/fenêtres un seul utilisateur a ouvert: http://www.codediesel.com/javascript/sharing-messages-and-data-across-windows-using-localstorage/

Vous pouvez écouter l'événement storage qui se déclenche à chaque fenêtre un utilisateur ouvert sur votre site quand vous appelez localStorage.setItem ou localStorage.removeItem.

Bien sûr, il serait toujours logique d'utiliser SignalR pour notifier d'autres utilisateurs.

Si vous ne pouvez pas utiliser l'API localStorage pour une raison quelconque, vous pouvez toujours utiliser SignalR pour envoyer un message à chaque fenêtre ouverte par l'utilisateur en utilisant Clients.User(userName).... dans votre Hub. Par défaut, userName doit correspondre à IPrincipal.Identity.Name de votre utilisateur, mais vous pouvez enregistrer votre propre IUserIdProvider pour personnaliser ceci: http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#IUserIdProvider

Questions connexes