【发布时间】:2009-11-07 13:57:21
【问题描述】:
我要在 ASP.NET 中为朋友编写一个 Ajax 聊天 Web 应用程序,我有一个问题:如果 client1 向 client2 发送消息,应用程序应该如何向 client2 发送消息?有没有比向服务器发送请求更好的方法,“询问”是否有新消息?是否可以直接向客户端发送消息?
【问题讨论】:
我要在 ASP.NET 中为朋友编写一个 Ajax 聊天 Web 应用程序,我有一个问题:如果 client1 向 client2 发送消息,应用程序应该如何向 client2 发送消息?有没有比向服务器发送请求更好的方法,“询问”是否有新消息?是否可以直接向客户端发送消息?
【问题讨论】:
您能做的最好的事情就是使用Persistent HTTP Connection。 google 在其GMAIL 网站上使用 Google Talk 的方式。
【讨论】:
请记住,HTTP 是一个无状态协议,并且每个事务都是从客户端到服务器的。
服务器可以使用会话来确定该客户端是否“已知”,但至于使用普通的旧 HTTP 将信息发送回客户端,我认为这是不可能的(我的意思是来自服务器发起的连接,而不是对客户端的响应)
您需要使用 Javascript 来轮询服务器以获取信息。
如果您希望反过来,您可以使用 Java 或 Flash,但您还需要考虑 NAT 隧道、代理服务器以及客户端可能使用的任何其他奇怪设置。
【讨论】:
没有。我不认为服务器可以向客户端的浏览器发送消息。 以下是我实现聊天应用程序的方法:
一旦聊天会话关闭或过期,我会将聊天日志保存到数据库中。
【讨论】: