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

is it possible to send Refresh Commands from a server to a client that has no STATIC IP on c# winforms

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

如果客户端有静态 ip 地址,那会工作正常,但没有静态 ip 地址是我能想到的唯一解决方案of就是在每个client里面写一个timer,让它每隔x秒刷新一次数据,我觉得不是一个好方法
所以
TLDR:有没有一种方法可以在不编写计时器的情况下刷新数据?比如服务器可以在没有计时器的情况下访问客户端吗?

TLDR : is there a way to refresh the data without writing timers?like can the server access the client without that?

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

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

或者如果您只使用 sql 服务器 - 您可以使用 SQL 服务器通知服务

如果您对 SQL 使用 LINQ,也可以使用 SqlDependency。那里描述的最简单的方法 dunnry.com/blog/UsingSQLDependencyObjectsWithLINQ.aspx