1

我正在开发一个 SignalR 应用程序,其中一组 .NET 控制台客户端连接到 Web 服务器。如何使用 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();
    }
}

这是服务器端。

调用客户端的服务器 html

<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>

全球.asax

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

    }
4

1 回答 1

3

该文档显示了如何执行此操作https://github.com/SignalR/SignalR/wiki/PersistentConnection#sending-to-a-specific-connection

于 2013-04-02T17:05:43.247 回答