如何从服务器向客户端发送更新?

用户名

我正在构建ac#/ wpf项目。它的架构是这样的:

  • 一个控制台应用程序,它将位于服务器端的虚拟机(或我的家用计算机)上。
  • 一个将成为客户端应用程序的wpf应用程序。

现在我的问题是-我希望服务器能够将更改发送到客户端。例如,如果我对客户端ABC进行了更改,则希望服务器知道如何在客户端计算机上调用服务。问题是,我不知道服务器将如何调用客户端。

一个小例子,以防我不能很好地解释它:服务器在计算机1上,有两个客户端,在计算机2和3上。客户端2有一辆丰田汽车,客户端3有一辆宝马汽车。计算机1上的服务器想告诉客户端2它有一辆新车,复仇者联盟。

如何在客户端上保持跟踪和呼叫服务?我想到了将其IP地址(从cmd调用ipconfig)保存在数据库中-但是这不是基于它们所连接的WI-FI /网络吗?

谢谢你的帮助!

书呆子

您可以尝试实现SignalR这是一个很棒的库,它使用Web套接字将数据推送到客户端。

编辑:

SignalR允许您在WPF应用程序(客户端)可以连接到的控制台应用程序(服务器)上设置集线器,从而帮助您解决问题。客户端启动时,您将使用指定的集线器注册它们。当服务器上发生某些更改时,可以将其从服务器集线器推送到客户端。客户端将从服务器接收信息,并允许您根据需要进行处理。

一些代码的粗略模型:

namepsace Server{}
    public class YourHub : Hub {
        public void SomeHubMethod(string userName) { 
            //clientMethodToCall is a method in the WPF application that
            //will be called. Client needs to be registered to hub first.
            Clients.User(userName).clientMethodToCall("This is a test.");

           //One issue you may face is mapping client connections.
           //There are a couple different ways/methodologies to do this.
           //Just figure what will work best for you.
         }
    }
}

namespace Client{
    public class HubService{          

      public IHubProxy CreateHubProxy(){
          var hubConnection = new HubConnection("http://serverAddress:serverPort/");
          IHubProxy yourHubProxy = hubConnection.CreateHubProxy("YourHub");
          return yourHubProxy;
        }
    }

}

然后在您的WPF窗口中:

var hubService = new HubService();
var yourHubProxy = hubService.CreateHubProxy();
yourHubProxy.Start().Wait();
yourHubProxy.On("clientMethodToCall", () => DoSometingWithServerData());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从服务器向客户端发送消息

Vscode语言客户端扩展-如何从服务器向客户端发送消息?

从客户端向服务器发送对象

从客户端向服务器发送图像

从客户端向服务器发送大量数据

从服务器向 websocket 客户端发送消息

向/从客户端/服务器发送对象

服务器向客户端发送消息

向所有客户端发送消息(客户端-服务器通信)

如何从 Python 服务器向 Java 客户端发送消息

如何从Flask服务器(Python)向HTML客户端发送消息?

Spring Integration和TCP服务器套接字-如何向客户端发送消息?

在ASP.NET Core SignalR中,如何从服务器向客户端发送消息?

如何使用STOMP从Spring WebSocket服务器向WebSocket客户端发送消息?

Java如何使服务器向连接的每个客户端发送消息

如何使用Java RMI从服务器向客户端发送消息?

如何使用端口从服务器向客户端发送消息?

如何从Qt中的服务器向连接的客户端发送消息

如何从节点js服务器向客户端发送json数据?

如何在发布请求后从我的服务器向客户端发送错误?

如何通过获取将更新的变量从客户端发送到服务器?

如何从客户端桌面应用程序向服务器端Spring应用程序发送请求?

带套接字的TCP客户端/服务器,服务器向客户端发送文件,客户端挂起,Python

从服务器端向客户端发送jwt令牌的正确方法是什么?

如何使用Java中的套接字从服务器向特定客户端发送字符串消息?

当客户端没有向服务器返回答案时,如何停止重新发送网页

建立连接后,如何从服务器(使用连接列表)向客户端发送命令?

如何使用Django通道和WebSocket从服务器的任何位置向客户端发送事件

Flask-SocketIO如何允许2个客户端依次向服务器发送消息?