1

我正在试验 Signalr Hubs 并创建了一个小应用程序来将消息推送到外部集线器。我创建了一个代理并连接到集线器,然后我可以调用任何我想要的方法。

  InitializeComponent();

        connection = new HubConnection("http://externalsite.net");

        myHub = connection.CreateProxy("WebHub");

        if (connection.State.ToString() != "Connected")
        {
            connection.ConnectionId = "adminConsole";

            Console.WriteLine("Attempting to connect...");
            connection.Start().ContinueWith(task =>
            {

                Console.WriteLine("Attempting to Connect");
                if (task.IsFaulted)
                {
                    Console.WriteLine("error opening the connection:{0}" 
                    task.Exception.GetBaseException());
                }
                else
                {

                    Console.WriteLine("Client Connected");

                }
            }).Wait();
        }

然后我可以使用“myHub.Invoke(method)”

在我的集线器上,我有连接客户端的方法,并且可以更新网页,但我该如何订阅或通知我的应用程序这些事件?

例如,这是集线器上的一种方法:

公共无效发送(字符串消息,字符串名称){

        Clients.All.Broadcast(message, name);
    }

所有客户都收到此消息,我的应用程序如何也收到此消息?这可能吗?,我可以让我的应用程序轮询更改,但这远非理想。

更新:我尝试在下面附加 On<> 方法也没有运气。

myHub.On<VMessage>("Send", message =>
            textBox1.Text += string.Format("Message update for
           {0} Message : {1}\n", message.engineName, message.Vmsg)
            );
4

0 回答 0