如何知道其他用户现在是否正在网络聊天网站上撰写邮件?

时间:2011-08-01 19:11:31

标签: c# javascript asp.net-mvc chat

我正在ASP.Net MVC网站上构建聊天系统,我希望用户看看其他聊天用户是否正在撰写消息。

与gtalk或msn中显示的内容相同,当其他用户开始编写时,“userA正在编写....”然后在用户停止时隐藏此消息。

在网站上实施此功能背后的概念是什么?我应该知道以正确的方式构建它?

3 个答案:

答案 0 :(得分:1)

这一切都是通过AJAX完成的

User1在写入开始时立即向服务器发送writing=true值,并在提交消息时发送writing=false

User2每隔x秒轮询一次服务器,以查看if(writing){display "User1 is writing a message"}

这显然是两种方式,因此User1和User2都是从服务器推送writing布尔值。

我建议在这个过程中使用jQuery和JSON。

答案 1 :(得分:0)

查找编辑文本的“on change”(或等效内容)。发生计时器时启动计时器并向聊天服务器发送ajax消息以通知他们。提交文本或计时器用完时,请清除消息。

答案 2 :(得分:0)

客户端,计时器计数为500毫秒,变量sentState设置为false。

每当客户端键入内容时,重置该计时器,如果是sentState,则向服务器发送一个指示客户端正在键入的AJAX请求。最后,将sentState设置为true。

如果计时器达到500毫秒,则向服务器发送一个AJAX请求,指示客户端不再输入,并将sentState设置为false。