3

SignalR を使用してライブ チャットを開発しています。素晴らしい図書館です。しかし、しばらく解決できない問題に対処しました。そのため、signalR が一度に 8 ~ 10 の接続を確立したときの問題は、ライブ チャットが機能しなくなりました。たぶん、ローカルマシンですべてを実行するb / ciですか?

どこかで間違えたのかなと思いました。そこで、最も簡単なチャットを見つけました。ここからダウンロードできます。10個のウィンドウで開いたのですが、もう機能しません。signalR のパフォーマンスの問題ですか、それともプログラマーのミスですか? どうすればより速く動作させることができますか?

JabbR チャットも見つけました。また、ライブデモ があり、多くの人に機能します。彼らは何も特別なことをしません、そしてそれは非常にうまくいきます。

誰かがこの問題を解決できますか?

助けてくれてありがとう、ディマ。

4

2 に答える 2

5

次の 2 つの問題に遭遇した可能性があります。

  1. Windows 7 の IIS/Cassini には、デフォルトで同時接続数が 10 に制限されています。Windows Server でテストを実行してみて、同じように動作するかどうかを確認してください。
  2. タブではなく、別のブラウザ ウィンドウや別のブラウザやマシンで接続を開いてみてください。0.4 では、タブを使用すると混乱する可能性があることに気付きました。
于 2012-05-03T19:30:05.877 に答える
0

回避策を見つけました:

connectionId を書き換えて、すべてのタブで同じソネクション ID を持つようにします。

 public class MyConnectionFactory : IConnectionIdGenerator
    {
        public string GenerateConnectionId(IRequest request)
        {
            return MyUserManager.Instance.CurrentUserID.ToString();
        }
    }

global.asax に追加します。

GlobalHost.DependencyResolver.Register(typeof(IConnectionIdGenerator), () => new MyConnectionFactory());

そして、できる限り多くのタブを開くことができました。そして、すべてのタブが通知を受け取ります。

希望、それは役に立ちました。

于 2012-10-22T12:08:20.030 に答える