开发聊天模块

我正在开发asp.net中的在线聊天应用程序。 我面临一个问题,比如假设有两个用户开始通信。 当第一个用户在基于javascript的聊天框中写入消息然后ajax请求转到服务器。 我如何打开第二个用户聊天框,以便他回复第一个用户消息?

当用户发送消息时,将向您的服务器发出AJAX请求,您可能会将发布的消息保存到数据库中。 您还可以每X秒发出一次ajax请求,检查服务器上的任何新发布的消息,如果有,则向用户显示它们。

或者,您可以使用名为Comet的技术,通过该技术,您的服务器可以“推送”对客户端的响应,以便在发布新消息时通知他们。

你应该研究长轮询和网络套接字。 这些允许您的客户更有效地推送更新。 您可以每x秒轮询一次服务器,但这会浪费资源。

您可能想看看SignalR,它是.NET的异步信令库,非常适合聊天应用程序:

https://github.com/SignalR/SignalR

Scott Hanselman在他的博客上有一个很好的例子:

http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx