我正在进行实时聊天。我需要更改房间所有者和连接用户的状态以及UI。由于NodeJS / SocketJS /等不保证消息传递,我为此转而使用纯Ajax。
系统的工作原理如下: - 用户按下按钮以更改其状态 - 正在向服务器发送Ajax请求,并且状态更改请求正在DB中的队列中保存 - 用户每秒发送Ajax心跳。在服务器上,此心跳功能也处理队列(由房间所有者发送)。此外,它每次都会在房间内发送用户的当前状态。
问题是:双方可能存在临时的互联网问题,这会导致各种问题。这是因为在服务器上以任意顺序处理心跳Ajax请求,或者在客户端以错误的顺序接收响应。因此,用户有关于当前状态的错误数据,并且UI更改也是错误的。
制作这样的系统时,最好的方法是什么?我做错了什么或如何解决上述问题?
谢谢!