2016-07-07 1 views
0

나는 클라이언트가 ipaddress, name 등의 서버에서 업데이트 된 모든 클라이언트의 세부 정보를 연결할 때마다 signalr을 사용하여 서버에 datagrid에 클라이언트 데이터를 저장했습니다. 그래서 모든 클라이언트에 DataGrid 세부 정보를 보내고 새로운 클라이언트가 서버에 연결될 때마다 조건이 업데이트되고 현재 클라이언트를 포함한 모든 클라이언트가 업데이트 된 목록을 가져와야합니다 .... 여기까지 내 코드는 기본적으로 지금까지 무엇을 했는가winform의 SignalR 허브를 사용하여 서버의 DataGrid에 저장된 세부 정보를 보내는 방법

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(); 

    } 

이 목록을 서버에 표시하는 중 ... 모든 고객에게이 목록을 보내야합니다 ... 도와주세요 ... 감사합니다 .... 아니면 다른 방법이 있거나 있습니다. 잘못된 일을 저에게 해주세요.

+0

당신은 사용하여 서버에서 모든 클라이언트에 메시지를 보낼 수있는'Clients.All' – Pawel

답변

0

서버에는 허브에 브로드 캐스트 할 방법이 있습니다.

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

과 윈폼 클라이언트에 대한 소스 코드 :

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

관련 문제