ASP.NET中的聊天应用程序

时间:2009-11-07 13:57:21

标签: asp.net ajax chat

我要在ASP.NET上为朋友编写一个Ajax聊天Web应用程序,我有一个问题:如果client1向client2发送消息,应用程序应该如何将消息发送给client2?有没有比向服务器发送请求更好的方法,“询问”是否有新消息?是否可以直接将消息发送给客户端?

3 个答案:

答案 0 :(得分:1)

你能做的最好的事情就是使用Persistent HTTP Connection。谷歌在GMAIL网站上使用Google Talk的方式。

答案 1 :(得分:0)

请记住,HTTP是无状态协议,每个事务都是从客户端到服务器。

服务器可以使用会话来确定此客户端是否“已知”但是使用普通旧HTTP将信息发送回客户端我认为这是不可能的(我的意思是从服务器发起的连接,而不是对客户端的响应) )

您需要使用Javascript轮询服务器以获取信息。

如果你想要反过来,你可以使用Java或Flash,但是你还需要考虑NAT隧道,代理服务器以及客户端可能正在使用的任何其他奇怪的设置。

答案 2 :(得分:0)

没有。我不认为服务器可以向客户端的浏览器发送消息。 以下是我实现聊天应用程序的方法:

  1. client1通过Ajax向服务器发送消息
  2. 服务器将其保存到存储库(我在这种情况下使用singleton对象)
  3. client2从存储库
  4. 获取消息
  5. 将邮件标记为已读
  6. 一旦聊天会话关闭或过期,我会将聊天记录保存到数据库中。