0

Signalr を既存の asp.net フォーム Web アプリと統合しようとしています。

最初に接続に成功し、サーバー側がクライアント js 関数にコールバックした後、signalr は接続を維持するのに問題があるようです。私は Windows 7 マシンで開発しているため、接続数が 10 に制限されているため、デバッグがやや難しくなっています。ただし、Web サイトが 2003 Enterprise Ed に展開されたときに、同じ問題のように見えるものを見てきました。サーバーなので、接続制限の問題は発生していないと思います(ただし、修正する準備はできています)

フィドラーを見ると、最終的に接続要求に対して 200 を取得しますが、返される唯一の JSON は次のとおりです。

{"C":"B,0|7,4|8,0|9,0","T":1,"M":[]}

これが何を表しているのかわかりません。最初に接続が成功すると、次のようになります (これには、予想されるデータ ペイロードが含まれます)。

"C": "B,0|BK,1|BL,0|BM,0",
"M": [{
    "H": "notifyHub",
    "M": "notificationReceived",
    "A": ["[{\"TransitionNotificationId\":527,\"AuthorizationJobId\":53,\"TransitionType\":2,\"IsWorkShop\":true},
            {\"TransitionNotificationId\":528,\"AuthorizationJobId\":53,\"TransitionType\":12,\"IsWorkShop\":true},
            {\"TransitionNotificationId\":580,\"AuthorizationJobId\":61,\"TransitionType\":2,\"IsWorkShop\":true}]"]
    }]

「失敗した」リクエストの JSON を適切に解釈できれば、どこで問題を探すべきかがわかります。

事前に乾杯。

4

1 に答える 1

1

T:1 は、接続タイムアウトが発生したことを意味します。longpolling を使用すると、接続は 120 秒ごとにタイムアウトします (デフォルト)。これは、ほとんどのロード バランサー/プロキシがしばらくするとアイドル状態の接続を強制終了するためです。他のトランスポートはキープアライブを送信して、これが起こらないようにします。

残りのペイロードについては、次のとおりです。

C: Cursor
M: Messages
   H: Hubname
   M: Method name
   A: Method args
T: Timeout
D: Disconnect
于 2013-01-17T19:21:58.150 に答える