Бег session_write_close()
до sleep()
в Laravel, кажется, не работает, так как сеанс по-прежнему заблокирован от других запросов, пока текущее соединение не будет завершено.
Я пытаюсь sleep()
в Laravel, не блокируя другие запросы. Обнаружил, что session_write_close () должен решить проблему, как упомянуто здесь: Длинный опрос в Laravel (функция sleep () заставляет приложение зависать). Но это не работает. sleep()
все еще блокирует другие запросы.
Приложение проекта — это приложение чата, использующее регулярный опрос и длинный опрос:
http://github.com/doncadavona/laravel-angularjs-chat
Прямо к коду:
https://github.com/doncadavona/laravel-angularjs-chat/blob/master/app/Http/Controllers/MessagesController.php
Laravel не использует функции обработки сессий PHP. Вы должны использовать
$request->session()->save();
вызвать метод записи обработчика. Но, поскольку Laravel также не реализует какой-либо механизм блокировки сеанса, вы вряд ли увидите какую-либо связанную с сеансом блокировку, и при этом вы не должны видеть никаких изменений в поведении ajax, потому что вы сохранили / закрыли сеанс.
Вы не можете использовать session_start()
или же session_write_close()
в Ларавелле.
Laravel, кажется, не работает, так как сеанс все еще заблокирован
из других запросов, пока не будет установлено текущее соединение.
Это уже природа PHP, поэтому AJAX был создан для того, чтобы у нас было несколько запросов одновременно.