2013-04-02 110 views
1

我正在开发SignalR应用程序,其中一组.NET控制台客户端连接到Web服务器。我如何使用SignalR从服务器调用特定的客户端。呼叫SignalR中的特定客户端

在我当前的应用程序中,当我从服务器端单击按钮时。它触发所有控制台客户端。 但我想要触发的是保留server.html上的所有客户端信息并调用特定的客户端。

目前,这是我的控制台应用程序

class Program 
{ 
    static void Main(string[] args) 
    { 
     var connection = new Connection("http://localhost:65145/printer"); 

     //Establishing the connection 
     connection.Start().ContinueWith(task => 
     { 
      if (task.IsFaulted) 
      { 
       Console.WriteLine("Failed to start: {0}", task.Exception.GetBaseException()); 
      } 
      else 
      { 
       Console.WriteLine("Success! Connected with client connection id {0}", connection.ConnectionId); 
      } 
     }); 

     //Reciveing data from the server 
     connection.Received += data => 
     { 
      Console.WriteLine("Receiving print request from server"); 
      Console.WriteLine(data);  
     }; 

     Console.ReadLine(); 
    } 
} 

这是服务器端。

这就要求客户

<script type="text/javascript"> 
     $(function() { 
      var connection = $.connection('/printer'); 

      connection.received(function (data) { 
       //$('#messages').append('<li>' + data + '</li>'); 
      }); 

      connection.start().done(function() { 
       $('#print').click(function() { 
        var printThis = { value: 113, reportId: 'Report', printer: '3rd Floor Lazer Printer', Copies: 1 }; 
        connection.send(JSON.stringify(printThis)); 
       }); 
      }); 
     }); 
    </script> 

的Global.asax服务器HTML

protected void Application_Start(object sender, EventArgs e) 
    { 
     RouteTable.Routes.MapHubs(); 
     RouteTable.Routes.MapConnection<MyConnection>("printer", "/printer"); 

    } 
+1

你阅读文档做https://github.com/SignalR/SignalR/wiki /集线器#调用特定连接方法 – davidfowl

+0

是的。但是如果你能看到我使用的是连接而不是集线器。继续进行不建议的连接? – Nipuna

回答