我有一个简单的聊天室网络应用程序。我希望能够使用javascript将聊天记录保存到用户的cookie中。我遇到的问题是当用户打开多个窗口时,他会多次将聊天消息保存到他的cookie中。阅读本文一定非常混乱,请参阅下面的示例:
聊天室中只有两个用户A和B,A正常,但B有两个窗口打开,都在同一个聊天室页面中。 A说"早安",B什么也没说,他看到的是:
A:早上好
到目前为止没有任何问题,但是当B将其保存到他的cookie中时,因为他打开了两个窗口,这条消息将被保存两次到他的cookie中。所以下次他来聊天室时,他看到的聊天记录将是:
A:早上好
A:早上好
如果B同时打开n个窗口,则会保存该消息n次。
我想到的解决方案是将消息保存到cookie中,检查cookie中的最后一条消息是否与保存的消息相同,如果它们相同,则不要再次保存。
但是对于用户真正多次发送相同消息的情况,这将省略不应该重复的消息。
这通常如何解决?我想用户通常不能同时打开两个聊天室页面,但我允许他们这样做。
答案 0 :(得分:1)
在服务器上为每条消息分配唯一的ID。检查本地聊天记录,以查看该ID是否已存在于其中的任何位置。
答案 1 :(得分:1)
您可以保存每条消息的时间戳,如果消息和时间戳都匹配,那么它就是重复的消息。
答案 2 :(得分:0)
我说说我的想法。因为每个窗口都会有cookie。你会把历史记录。我想你可以为每个历史记录设置时间标记。每个人都不能发送两个或多个消息。你可以测试时间标记。然后判断此消息需要保存还是不存在。