Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话被ajax长轮询锁定_Php_Session - Fatal编程技术网

PHP会话被ajax长轮询锁定

PHP会话被ajax长轮询锁定,php,session,Php,Session,我有一个ajax长轮询请求,它在第一个页面加载时运行良好。问题是当重新加载页面或浏览新页面时,PHP会话将被锁定,直到旧的PHP会话超时 我有以下长轮询代码 while (time() - $time < 55) { if ($userid != 0) { updateUserSession(); fetchMessages(); getTyping(); //getNotifications(); if (!empty($response)) {

我有一个ajax长轮询请求,它在第一个页面加载时运行良好。问题是当重新加载页面或浏览新页面时,PHP会话将被锁定,直到旧的PHP会话超时

我有以下长轮询代码

 while (time() - $time < 55) {

  if ($userid != 0) {

   updateUserSession();
   fetchMessages();
   getTyping();
   //getNotifications();

   if (!empty($response)) {

    header("Content-Type: text/plain");
    echo json_encode($response);
    exit;
   }

  }

  sleep(2);
 }
我有一个从顶部开始的课程

现在,问题是getTyping函数可能需要设置一个会话,因此在长轮询请求完成之前无法调用session\u write\u close,因此我无法获取会话数据,然后立即关闭它

有人能想出一个解决这个问题的办法吗


谢谢。

每次需要访问会话时,您能同时呼叫会话启动和会话写入关闭吗?我想你可能会收到重复的邮件头,但这可能不是问题


编辑此项将不起作用,因为一旦您向浏览器发送了任何内容,就无法调用会话\u start

我甚至没有尝试过,我以为您只能启动一次会话?