Je rencontre le même problème, et j'ai vérifié avec le requin de fil, mais il n'y a aucun trafic sortant de mon hub à mon client. L'autre sens de la communication coule correctement!
Jusqu'à présent, je n'ai pas été en mesure d'établir une solution, mais je vous tiendrai au courant, je voulais juste partager mes conclusions.
Le suivi a été ajouté au concentrateur et au client et a constaté que le concentrateur fermait la connexion, mais pas le client. Depuis le logfile Hub:
SignalR.Transports.TransportHeartBeat Verbose: 0 : d1992c3d-fbec-43e6-9662-b3e94af39418 is dead
SignalR.Transports.TransportHeartBeat Information: 0 : Removing connection d1992c3d-fbec-43e6-9662-b3e94af39418
Et dans l'exploitation forestière sur le client, il continue d'utiliser la même connexion
02:34:36.3191340 - d1992c3d-fbec-43e6-9662-b3e94af39418 - OnMessage({"I":"232"})
Hover Il y avait des messages réguliers du type suivant, qui ne sont plus envoyé.
02:34:35.2053710 - d1992c3d-fbec-43e6-9662-b3e94af39418 - LP: OnMessage({"C":"d-7D145E50-B,18|N,5|O,1","M":[]})
02:34:35.2073150 - d1992c3d-fbec-43e6-9662-b3e94af39418 - LP Poll: http://172.16.2.101:8074/signalr/poll?clientProtocol=1.4&transport=longPolling&connectionData= ...
cette page Signal R on the wire j'ai appris que le { "I": "232"} message signifie que: Un serveur méthode vide a été complété avec succès.
Ce qui est correct, car je peux voir les mises à jour car elles sont traitées dans le concentrateur. Mais quand j'appelle une méthode sur ce même ID de connexion, rien ne se passe. Et ce n'est pas étrange car le Hub a jugé que cette connexion était morte! Pourquoi la connexion est-elle morte sur le concentrateur pour les messages sortants, mais le concentrateur peut-il encore traiter les messages entrants de cette connexion?
résultats supplémentaires: Here il est mentionné que « côté client garder contrôle en vie ne soit pas utilisé pour le long transport de vote » et je l'ai trouvé une référence here que c'est en effet désactivé par défaut et le dernier commentaire sur cette question est "... cesse de recevoir la communication venant du serveur ..."
Si je comprends bien, nous permettons au client de rester en vie en réglant: GlobalHost.Configuration.KeepAlive
Et nous avons réglé ceci, alors pourquoi le client ne détecte pas la mort de connexion!
Voyez-vous une nouvelle connexion en cours de création? Parce qu'il semble qu'il existe un nouveau que le client utilise pour le trafic entrant, mais l'invocation utilise toujours l'ancienne connexion morte. –
Le client utilise toujours l'ancienne connexion, dans le Hub il y a un OnDisconnected, mais jamais un nouveau OnConnected ou OnReconnected. Cependant, je trouve étrange que le hub répond aux messages entrants avec un "je" mais pense que la connexion est morte. Juste trouvé ceci qui semble le même, mais a été fermé dans l'étape 2.1.2 et nous utilisons la version 2.2: [Issue 3259] (https://github.com/SignalR/SignalR/issues/3259) Le processus de reconnexion n'est jamais déclenché côté client et il cesse de recevoir toute communication provenant du serveur – Boscabouter