【发布时间】:2011-01-03 07:46:55
【问题描述】:
我正在创建一个非常简单的聊天应用程序。它有一个 ASP.NET 网页作为前端,一个 WCF 服务作为后端用于将消息存储到数据库中。
除了一件事,一切都很好;当浏览器 A 输入聊天消息时,我希望浏览器 B 尽快看到该消息(是的,我知道,这就是聊天的目的)。
到目前为止,我所做的是在 UpdatePanel 中设置一个触发器,如下所示:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="chatTimer" EventName="Tick" />
</Triggers>
使用计时器:
<asp:Timer ID="chatTimer" runat="server" OnTick="chatTimer_Tick" Interval="1000" />
这是最好的方法还是有更好但更简单的方法来完成消息的更新。此解决方案的一个缺点是每次运行 Tick 事件时,用于输入聊天消息的文本框都会失去焦点。
感谢任何有关更新消息的反馈或建议。
谢谢!
【问题讨论】:
-
您是否考虑过在 Silverlight 中这样做?您也许可以利用套接字将更新推送到客户端,而不是每秒拉更新。
-
目前,不,我没有。同时,你的提议听起来很不错。这实际上是我想做的。