ASP.NET中的聊天应用程序
问题描述:
我必须在ASP.NET中为朋友编写Ajax聊天Web应用程序,并且我有一个问题:如果client1向client2发送消息,应用程序应该如何将消息发送给客户端2?有没有比向服务器发送请求更好的方法,“询问”是否有新消息?是否可以直接将消息发送给客户端?ASP.NET中的聊天应用程序
答
请记住HTTP是一个无状态协议,并且每个事务都是从客户端到服务器。
服务器可以使用会话来确定这个客户端是否“已知”,但是使用普通旧HTTP发送信息回到客户端我认为这是不可能的(我的意思是从服务器发起的连接,而不是对客户端)
您将需要使用Javascript来轮询服务器的信息。
如果您想要另一种方式,您可能会使用Java或Flash,但是您还需要考虑NAT隧道,代理服务器以及客户端可能使用的任何其他奇怪设置。
答
不,我不认为服务器可以发送消息到客户端的浏览器。 这里是我如何实现聊天应用:通过Ajax
- 客户端1后消息服务器
- 服务器保存到存储库(我使用这种情况下singleton对象)
- 客户机程序得到库中的消息
- 将邮件标记为已读
我会保存聊天记录到数据库一次聊天会话关闭或已过期。
您绝对可以使用持久HTTP连接。所以我不认为这是不可能的。 – 2009-11-07 14:12:14
感谢您的-1。你说的工作,但我认为ASP.NET限制为20个同时PHTTP连接。我认为你可以提高到100.需要研究这一点。 – Wayne 2009-11-07 14:27:38