【发布时间】:2013-10-20 07:16:05
【问题描述】:
我正在尝试使用 AJAX 和 javascript 在 PHP 中创建一个聊天应用程序。当我尝试在同一个浏览器窗口中发布消息时,消息会正确发布和显示。但是当我打开另一个窗口并尝试向第一个窗口用户发送消息时,它会发送消息,但是当我下次从窗口 1 发布消息时,它会像从窗口 2 用户发布一样发布。我正在使用会话来记录用户名,并且我相信每次加载窗口时,用户会话变量中的值都会发生变化,并且会影响应用程序在所有窗口中的行为。即,在窗口 1 中存储为会话变量的用户名被窗口 2 中的用户名覆盖,因为两者都在访问同一段代码。每次 AJAX 尝试从数据库中获取新消息时,它都会在加载新窗口时为不同的用户获取。 我想知道这是否可以通过多线程来解决,或者是否有任何其他方法可以解决这个问题。聊天应用程序是否总是需要多线程?这让我很困惑。请帮忙。
【问题讨论】:
-
请注意,同一浏览器的两个窗口通常共享cookie,因此会话。使用两个不同的浏览器或两台不同的计算机来测试它。 php 聊天应用不需要多线程,afaik php 甚至没有多线程支持。
-
谢谢...现在可以使用了..
-
在这种情况下会发生轮询。当用户增加轮询无法提供性能时。
标签: javascript php ajax multithreading