Vene4ka
@Vene4ka
фанат фаната пхп

Почему я не могу отправить данные в веб-сокетке в блоке onConnect?

Привееет! Снова я со своим уже любимым веб-сокетом! Долблю его уже вторые сутки без сна и снова столкнулся с проблемой:
$ws_worker = new Worker('websocket://0.0.0.0:2346', $context);
$ws_worker->transport = 'ssl';
$ws_worker->count = 1;

function send($data, $ws_worker) {
    foreach ($ws_worker->connections as $cc) {
        $cc->send($data);
        echo "Обработочка \n";
    }
};

$ws_worker->onConnect = function($connection) use ($ws_worker) {
    echo "Openned \n";
    $data = array();
    $data["type"] = "info";
    $data["cnt"] = 32;
    $arr = json_encode($data);
    send($arr,$ws_worker);
};

$ws_worker->onClose = function($connection) use ($ws_worker) {
    echo "Closed \n";
};

$ws_worker->onMessage = function ($connection, $data) use ($ws_worker) {
    send($data,$ws_worker);
};

Worker::runAll();


Мне нужно сделать счетчик онлайна на сайте, пробую отправить запрос на всех клиентов, а тут бац, и я не могу.
Причем, если убрать все из метода onConnect - хотя-бы чат работает, но если исполнять код в этом виде - ничего не происходит(
Лишь только выводится в консоль "Обработка","Openned" и "Closed".
То-есть оно дергается, но не может отправить(

Памагити!
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы