所以这是我的目标是
我们编写的这个应用程序(我们是我和我的团队),然后我们决定该应用程序需要某种在线支持。
该应用程序是用 C# 编写的,并使用 SQL 作为数据库,并且该应用程序具有加密狗。
我正在尝试开发在线和离线票务方法,但是当我意识到必须刷新聊天时问题出现了......即管理面板发送给用户的消息必须以某种方式告诉用户刷新用户界面并获取来自在线服务器本身的数据......
如果客户端有静态IP地址,那会很好,但是没有静态IP地址我能想到的唯一解决方案是在每个客户端中编写一个计时器并告诉它刷新每 x 秒数据一次,在我看来这不是一个好方法。
所以
TLDR:有没有办法在不写计时器的情况下刷新数据?比如服务器可以在没有它的情况下访问客户端吗?
问问题
147 次
2 回答
1
您可以使用长池策略。 https://en.wikipedia.org/wiki/Push_technology#Long_polling
或者,如果您只使用 sql server - 您可以使用 SQL Server Notification Services
如果您使用 LINQ to SQL,您也可以使用 SqlDependency。那里描述的最简单的方法 dunnry.com/blog/UsingSQLDependencyObjectsWithLINQ.aspx
于 2015-11-11T11:40:00.940 回答
0
TLDR:有没有办法在不写计时器的情况下刷新数据?比如服务器可以在没有它的情况下访问客户端吗?
不,服务器无法启动与客户端的连接。例如,客户端可以位于防火墙或 NAT 之后。您可以让客户端轮询更新,或者您可以有一个开放的连接(由客户端启动),服务器可以通知更新。
于 2015-11-11T11:38:34.803 回答