我已经使用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中显示服务器本身的这个列表...我必须将此列表发送给所有客户...请帮助我...谢谢....或者还有其他任何方式或我在做什么错了请告诉我..
答案 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客户端的源代码: