我开发了一个基于AJAX的聊天,以满足我的应用程序基于AJAX的聊天
这里是我做什么就聊天而言
- 有各种聊天室,并且用户可以点击任何聊天室,以开始聊天
- 用户登录并可以同时
只有一个聊天室的一部分,我把聊天室的数据(该聊天室的状态在数据库中的XML格式WH ICH如下所示)
<ChatRoom roomid="<roomid>">
<Users>
<User uid="<uid>" username="<username>" color="" heartbeat="">
<User uid="<uid>" username="<username>" color="" heartbeat="">
<User uid="<uid>" username="<username>" color="" heartbeat="">
</Users>
<Messages>
<Message id="" from="<username>">This is message text</Message>
<Message id="" from="<username>">This is message text</Message>
<Message id="" from="<username>">This is message text</Message>
</Messages>
</ChatRoom>
每当用户点击一个聊天室......我基本上发送一个GET请求到服务器和用户的UID ...服务器会在后台添加用户信息也给我的用户的列表在线(在线定义为谁拥有最后15分钟内的心跳的任何用户),并发送聊天室
现在的lastmessage ID创建一个AJAX请求和发送请求的每几秒钟...请求基本上发送用户已知的lastMessageID ...如果在该消息ID之后对聊天室有任何新的消息(每当一个新消息被添加到聊天室时,消息ID被增加...并且我也有环绕在地方限制的消息== 100)
每当新的消息是由服务器完成了...用户的浏览器视图获取新的信息更新的最大数量以及用户更新lastMessageID它知道
我希望这将清除画面有点
我的问题是:
- 从设计的角度来看...如何设计
- 在那里我可以做出改进
- 聊天来响应我发现,我需要检查新邮件每2秒......这可能在服务器
- 这是一个轮询机制上产生不必要的请求负载...有一个通知机制...就像一个客户端设置回调...和服务器回复回调时,每当有什么新的
任何意见,我的做法和我如何做事?
我很乐意回答任何问题,并与你们讨论
细节非常感谢您的时间!