【问题标题】:Observer Pattern ASP.NET Pages观察者模式 ASP.NET 页面
【发布时间】:2011-07-15 14:57:13
【问题描述】:

我正在开展一个项目,我正在尝试将更新推送到网站的母版页。

我已经实现了观察者模式,并在应用的全局asax中初始化了相关类。

我运行该网站的 2 个副本,说页面副本 A 和页面副本 BI 正在尝试触发一个事件,当我单击 A 时,该事件触发并且我的所有页面实例都更新了,此时只有 A 被更新。

是否有可能导致多个实例更新?比如在聊天室里?

我应该使用中介模式吗?

提前致谢。

【问题讨论】:

  • 我不明白你的意思。请发布一些相关代码。
  • 我相信运营商正在尝试为他的网站实施广播系统,该系统说服务管理员可以发送一条消息,通知所有用户该网站正在停机进行维护。
  • 我认为他想将更新推送到正在查看同一组数据的所有页面,并让这些页面立即“知道”它已被推送,而不是在这些页面上使用轮询来查看数据已经改变。介于聆听和投票之间,或者可能是其他东西。
  • 大家好,感谢您的回复。正如约翰尼所说。我正在尝试将更新推送到所有页面。我可以在页面上放置一个计时器并进行轮询,但是在更新时通过事件参数推送数据会更有效。
  • 你知道这是否与在不同的踏板上跑步有关。应用程序和会话是否在不同的线程上运行?

标签: asp.net design-patterns c#-4.0


【解决方案1】:

您似乎正在寻找Comet Pattern。这允许您的客户端页面向您的网站打开长时间运行的 HTTP 查询。但是,我不建议使用这种模式,因为它的可扩展性不是很高。

HTML 5 允许您使用Web Sockets(即pretty well supported by modern browsers)从浏览器打开套接字连接。这允许您打开与服务器的套接字连接,以便在更新可用时通知客户端。

您也可以使用 Flash 或 Silverlight 来完成此操作。

【讨论】:

    猜你喜欢
    • 2016-02-20
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多