0

我正在尝试使用 AJAX 和 javascript 在 PHP 中创建一个聊天应用程序。当我尝试在同一浏览器窗口中发布消息时,消息会正确发布和显示。但是当我打开另一个窗口并尝试向第一个窗口用户发送消息时,它会发送消息,但是当我下次从窗口 1 发布消息时,它会像从窗口 2 用户发布一样发布。我正在使用会话来记录用户名,并且我相信每次加载窗口时,用户会话变量中的值都会发生变化,并且会影响应用程序在所有窗口中的行为。即,在窗口 1 中存储为会话变量的用户名被窗口 2 中的用户名覆盖,因为两者都在访问同一段代码。每次 AJAX 尝试从数据库中获取新消息时,它都会在加载新窗口时为不同的用户获取。我想知道这是否可以通过多线程来解决,或者是否有任何其他方法可以解决这个问题。聊天应用程序总是需要多线程吗?这让我很困惑。请帮忙。

4

1 回答 1

1

如果您想模拟两个不同的用户,他们应该有不同的会话并互相聊天,您可以打开两个不同的浏览器(例如 Internet Explorer 和 Firefox)并在每个浏览器上使用一个用户登录。然后会话不共享。

据我所知,同一浏览器共享会话中的不同浏览器窗口,因此以后的登录将覆盖第一次登录。

于 2013-10-12T07:57:39.097 回答