我在做一个实时聊天。我需要更改房间所有者和已连接用户的状态,以及UI。由于NodeJS/SocketJS/etc不能保证消息传递,为此我改用纯Ajax。
系统是这样工作的:-用户按下一个按钮来改变他的状态-一个Ajax请求被发送到服务器,一个状态改变请求被保存在数据库的队列中-用户每秒发送Ajax心跳。在服务器上,此心跳功能还处理队列(当由房间所有者发送时)。此外,它每次都会发送房间内用户的当前状态作为响应。
问题是:两边可能都有暂时的互联网问题,这会导致各种问题。发生这种情况的原因是,心跳Ajax请求在服务器上以任意顺序处理,或者在客户端以错误的顺序接收响应。因此,用户有关于当前状态的错误数据,并且UI更改也是错误的。
在制作这样的系统时,最好的方法是什么?我做错了什么,或者我如何解决上面的问题?
谢谢!
发布于 2015-11-24 18:12:07
看看Max的博客a Django-Realtime-Chat,以及他是如何做到的。
https://stackoverflow.com/questions/33863520
复制相似问题