Lorsque j'essaie d'accéder à la session en cours HttpContext
à partir du hub, il renvoie null
.
J'ai essayé d'utiliser l'interface IRequiresSession
mais cela n'a pas fonctionné. Est-ce que quelqu'un peut m'aider?
Les connexions SignalR (y compris la connexion sous-jacente à toutes les opérations de concentrateur pour un client) ne prennent pas en charge l'état de session. Vous pouvez l'activer si vous le souhaitez, mais nous le déconseillons vivement, car l'accès à l'état de session sérialise les demandes d'un client donné, ce qui signifie que vous n'obtiendrez plus vraiment les avantages de la messagerie duplex SignalR, car une demande bloquera l'autre, par exemple. dans le transport à interrogation longue, la connexion de réception bloquera toute tentative d'envoi.
Je résous le même problème avec le champ caché comme suit:
vous pouvez simplement gérer votre propre session, par exemple, utiliser dans la mémoire cache, http est sans état, ainsi le serveur a besoin d'une session pour gérer les clients, mais le socket Web est une connexion toujours active, le serveur reste connecté aux clients, par défaut, il n'est pas nécessaire Session HttpContext.