Closed micronull closed 7 years ago
Здравствуйте. На сколько я знаю, то когда подключается клиент, то создается отдельный поток, поэтому блокировки не происходит
@olegius88 это на каком драйвере? Проверил на event, блокирует. По умолчанию тоже.
Проверял следующим способом: В onMessage поставил цикл со sleep(1) и вывел принимаемые сообщения. В итоге от второго клиента сообщение вывелось только после того, как завершился цикл от первого клиента.
покажите код
'eventDriver' => 'event' Странно. Попробуйте длинный цикл поставить: for ($i = 1; $i <= 10000000000000; $i++) { } будет ли аналогичная ситуация?
передавать много данных и передавать долго - это разные понятия. как только вы вызовете команду отправить в сокет много данных, то они запишутся в память, а на клиент будут передаваться частями параллельно с другими пользователями, а так можно было и пример со sleep(3600) привести.
@morozovsk Спасибо, теперь понятно.
У меня при соединении по некоторым клиентам будет осуществляться рассылка больших объемов данных, как сделать чтоб они не блокировали работу остальных клиентов? Прикручивать pthreads?