我开发了一个基于AJAX的聊天来满足我的应用程序
就聊天而言,这就是我所做的事情
我保留聊天室的数据(聊天室的状态在XML格式的数据库中,如下所示)
<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>
每当用户点击聊天室时...我基本上都会使用用户的uid向服务器发送获取请求...服务器将在后端添加用户信息,并向我发送当前用户列表在线(在线定义为在过去15分钟内有心跳的任何用户)并且还发送聊天室的最后消息ID
现在我创建一个AJAX请求并每隔几秒发送一次请求...请求基本上发送用户已知的lastMessageID ...如果该消息ID后面有任何新的聊天室消息(messageIDs每次增加一次新的消息被添加到聊天室...而且我已经有一个环绕以限制最大消息数量== 100)
每当服务器发送新消息时...用户的浏览器视图会更新新消息,并且用户也会更新它知道的lastMessageID
我希望这有点清除图片
我的问题是:
关于我的方法的任何评论以及我如何做事?
我很想回答任何问题并与你们讨论细节
非常感谢你的时间!!
答案 0 :(得分:0)
将数据保存在 in 数据库中似乎有点过分,使用平面XML(或JSON!)文件或仅使用数据库表,但可能不是两者都使用。您可以使用长轮询/ Comet来处理回调/从轮询中减轻服务器上的负载。否则,看起来很健康。
请参阅此处,例如:http://en.wikipedia.org/wiki/Comet_%28programming%29