0

SignalR を使用して複数のタブに接続されている 1 つのクライアントにメッセージを送信する方法を理解しようとしています。問題は、メッセージを特定のクライアントに送信すると、クライアント ブラウザの現在のタブではなく、最初のタブにしか到達しないことです。

これが私のコードの一部です:

チャットハブ クラス:

public void SendToSpecific(string name, string message, string to, string chatlog, string chatlogTo, string mType)
    {
        Clients.Caller.broadcastMessage(name, message, chatlogTo, mType);
        Clients.Client(dic[to]).broadcastMessage(name, message, chatlog, mType);
    }

Jクエリ:

chat = $.connection.chatHub;

Startup.cs:

using Owin;
using Microsoft.Owin;
[assembly: OwinStartup(typeof(testFoundation.Startup))]
namespace testFoundation
{
 public class Startup
 {
     public void Configuration(IAppBuilder app)
     {
        // Any connection or hub wire up and configuration should go here
        app.MapSignalR();
     }
 }
}

問題は、クライアントが複数のタブで接続している場合、クライアント ブラウザのアクティブなタブにメッセージを送信するにはどうすればよいかということです。

ありがとう。

4

1 に答える 1

2

Clients.Client は 1 つの接続に送信し、各タブには独自の接続があります。特定のユーザーに送信したい場合

Clients.User

アクティブなタブへの送信が奇妙に思えますか? 彼がタブを切り替えると、他の人は最新ではありませんか?

于 2015-01-27T07:56:07.210 に答える