如何使用winform中的SignalR Hub将存储在服务器上的datagrid中的详细信息发送到客户端

时间:2016-07-07 08:01:28

标签: c# asp.net signalr signalr-hub signalr.client

我已经使用signalr在datagrid中的服务器上存储了一些客户端数据(每当客户端连接服务器上更新的所有客户端的详细信息,如ipaddress,名称等)...所以我想将数据网格详细信息发送给所有客户端,条件是每当新客户端连接到服务器时,包括当前客户端在内的所有客户端都必须获得更新列表....这是我的代码基本上我到目前为止所做的,

  public override Task OnConnected()
    {
        object ipaddress;
        var a=Context.QueryString["name"];
        var b= Context.QueryString["AnotherValue"];
        if (Context.Request.Environment.TryGetValue("server.RemoteIpAddress", out ipaddress))
        {
            //ipcollections = new List<string[]>();

            userhandler.ipcol.Add(new string[] {  ipaddress.ToString(), a, b });
            Program.MainForm.writetodatagrid(userhandler.ipcol);
        }

        Program.MainForm.WriteToConsole("Client connected: " + Context.ConnectionId );
        return base.OnConnected();

    }

并在datagird中显示服务器本身的这个列表...我必须将此列表发送给所有客户...请帮助我...谢谢....或者还有其他任何方式或我在做什么错了请告诉我..

1 个答案:

答案 0 :(得分:0)

在服务器上,您可以在Hub上使用Hub和方法进行广播。

    public class MyHub : Hub 
    { 
        public void Send(string ipaddress, string name) 
        { 
            Clients.All.addMessage(ipaddress, name); 
        }
    }

看看以下帖子。它有一个关于你在winforms客户端上做什么的例子。

https://code.msdn.microsoft.com/windowsdesktop/Using-SignalR-in-WinForms-f1ec847b#content

和winforms客户端的源代码:

https://code.msdn.microsoft.com/windowsdesktop/Using-SignalR-in-WinForms-f1ec847b/sourcecode?fileId=119892&pathId=583880341