同じ問題が発生しており、ワイヤーシャークでチェックしていますが、ハブからクライアントに送信されるトラフィックはありません。 コミュニケーションの周りの別の方法は正しく流れています!
これまでのところ、私は解決策を確立することができませんでしたが、あなたの投稿を維持して、ちょうど私の所見を共有したいと思いました。
ハブとクライアントにトレースを追加し、ハブが接続をクローズしてもクライアントは認識しないことに気付きました。それがされなくなった次のタイプの通常のメッセージ、があるように使用されるのと同じ接続
02:34:36.3191340 - d1992c3d-fbec-43e6-9662-b3e94af39418 - OnMessage({"I":"232"})
ホバーを使用し続けて、クライアント上の
SignalR.Transports.TransportHeartBeat Verbose: 0 : d1992c3d-fbec-43e6-9662-b3e94af39418 is dead
SignalR.Transports.TransportHeartBeat Information: 0 : Removing connection d1992c3d-fbec-43e6-9662-b3e94af39418
とロギング中:ハブのログファイルから 送信されます。
このページから
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= ...
Signal R on the wire 私は{ "I": "232"}ということを学びました:サーバーvoidメソッドが正常に完了したメッセージがあることを意味します。
どちらが正しいのですか。ハブで処理されている更新を見ることができます。しかし、同じ接続IDでメソッドを呼び出すと何も起こりません。そして、ハブが接続が死んでいるとみなしたので、それは奇妙ではありません!
なぜ、送信メッセージのハブで接続が壊れていますが、ハブはその接続からのメッセージをまだ処理できませんでしたか?
追加調査結果:Here私はこれが実際にデフォルトによって無効になり、この問題に関する最後のコメントであることを参照hereを発見した「クライアント側のチェックが長いポーリング輸送に利用されていないキープアライブ」と述べられています「...サーバーからの通信を受信しなくなりました...」
正しく理解すれば、クライアントを有効にするには、GlobalHost.Configuration.KeepAlive
と設定してクライアントを有効にしてください。クライアントが接続の死を検出しないのはなぜですか?
新しい接続が作成されていますか?クライアントが着信トラフィック用に使用しているが、Invokeはまだ古いデッド接続を使用しているという新しいもののように聞こえるためです。 –
クライアントはまだ古い接続を使用していますが、ハブにはOnDisconnectedがありますが、新しいOnConnectedまたはOnReconnectedはありません。しかし、私はハブが "私"と一緒にメッセージを受け取るのは奇妙だと思っていますが、コネクションが死んだと思っています。これは同じように見えますが、マイルストーン2.1.2で閉じられ、バージョン2.2を使用しています:[Issue 3259](https://github.com/SignalR/SignalR/issues/3259)再接続プロセスは決して引き起こされませんクライアント側では、サーバーからの通信を受信しなくなります – Boscabouter