SignalR - 向服务器发送通知

时间:2017-11-02 08:10:32

标签: c# signalr

当我尝试向所有客户端广播消息时,我可以从服务器触发客户端的javascript代码并完成工作。

但这次我的目标是在所有服务器中触发一个方法。例如,当用户的角色在一个服务器中更改时,我想警告其他服务器有关此操作,并且我想让其他服务器检索特定用户的更新用户角色列表。

是否可以使用SignalR执行此操作?服务器的行为可以像客户端(浏览器)吗?

1 个答案:

答案 0 :(得分:1)

是的,你可以做到。

我们假设你有以下中心:

public class TheHub : Hub
{
    public void RoleChanged(int userId)
    {
        Clients.All.roleChanged(userId);
    }
}

在所有收听服务器上,您必须执行以下操作:

var _connection = new HubConnection("http://localhost:1234/signalr");
var _theHub = _connection.CreateHubProxy("TheHub");

_myHub.On<int>("RoleChanged", userId =>
    {
        System.Diagnostics.Debug.WriteLine("Changed user's Id: " + userId);
    });

_connection.Start().Wait();

要调用RoleChanged事件,请执行:

_myHub.Invoke("RoleChanged").Wait();