是否可以将刷新命令从服务器发送到在c#winforms上没有STATIC IP的客户端

本文关键字:c#winforms STATIC 客户端 IP 刷新 命令 服务器 是否 | 更新日期: 2023-09-27 18:21:26

所以这是我的目标
这是我们编写的应用程序(我们是我和我的团队),然后我们决定该应用程序需要某种在线支持
该应用程序是用c#编写的,使用SQL作为数据库,并且该应用程序具有Dongles
我试图开发在线和离线售票方法,但当我意识到聊天必须刷新时,问题就出现了。。。即,管理面板发送给用户的消息必须以某种方式告诉用户刷新ui并从在线服务器本身获取数据

如果客户端有静态ip地址,那会很好,但没有静态ip地址的情况下,我能想到的唯一解决方案是在每个客户端中写一个计时器,并告诉它每x秒刷新一次数据,在我看来这不是一个好方法
所以
TLDR:有没有一种方法可以在不写定时器的情况下刷新数据?比如服务器可以在没有这个的情况下访问客户端吗?

是否可以将刷新命令从服务器发送到在c#winforms上没有STATIC IP的客户端

您可以使用长池策略。https://en.wikipedia.org/wiki/Push_technology#Long_polling

或者,如果您只使用sql server,则可以使用sql server Notification Services

如果使用LINQ to SQL,也可以使用SqlDependency。这里描述的最简单的方法是dunny.com/blog/UsingQLDependencyObjectsWithLINQ.aspx

TLDR:有没有一种方法可以在不写定时器的情况下刷新数据?比如服务器可以在没有这个的情况下访问客户端吗?

否,服务器无法启动与客户端的连接。例如,客户端可以位于防火墙或NAT后面。您可以让客户端轮询更新,也可以有一个打开的连接(由客户端启动),服务器可以在其中通知更新。