如何在Laravel中使用session_write_close()?

时间:2017-01-09 09:26:15

标签: php laravel nonblocking polling long-polling

在Laravel session_write_close()之前运行sleep()似乎无法正常运行,因为在当前连接完成之前,会话仍然无法阻止其他请求。

我试图在Laravel中sleep()而不阻止其他请求。发现session_write_close()应解决此处提到的问题:Long polling in Laravel (sleep() function make application freeze)。但它不起作用。 sleep()仍在阻止其他请求。

项目应用程序是一个使用常规轮询和长轮询的聊天应用程序: http://github.com/doncadavona/laravel-angularjs-chat

直接到代码: https://github.com/doncadavona/laravel-angularjs-chat/blob/master/app/Http/Controllers/MessagesController.php

2 个答案:

答案 0 :(得分:1)

Laravel不使用PHP的会话处理功能。你必须使用

<div><p>some text here<\p><\div>

调用处理程序的write方法。但是,由于Laravel也没有实现任何会话锁定机制,因此您不太可能看到任何与会话相关的阻塞,也不会因为您保存/关闭会话而看到ajax行为的任何更改。

答案 1 :(得分:0)

您无法在laravel中使用session_start()session_write_close()

  

Laravel似乎没有正常运行,因为会话仍然被阻止   从其他请求到当前连接完成。

这已经是PHP的本质,这就是为什么创建AJAX以便我们同时拥有多个请求的原因。