@RookDeveloper

Почему не получается запустить команду php artisan + workerman?

Всем доброго вечера! А вот у меня он совсем не добрый!
Есть у меня консольная команда на ларе, и вот handle:
public function handle()
    {
        $ws_worker = new Worker("websocket://...:8080");

        $ws_worker->count = 4;

        $this->clients = new \SplObjectStorage();

        $ws_worker->onWorkerStart = function ($ws_worker) {};

        $ws_worker->onConnect = function ($connection) {};

        $ws_worker->onMessage = function ($connection, $data_request) {};

        $ws_worker->onClose = function ($connection) {};

        Worker::runAll();
    }

Запускаю команду на дебаге (на локальном сервере не винде)...все ок...все супер...
НО...Запускаю уже на продакшене (ubuntu), тут ошибка, мол нужен еще параметр, команда не определена (именно workerman ругается):

5d583df7b6731840488117.png

Что мне делать? Пробовал через лару прописывать дополнительные поля в параметры команды:
protected $signature = 'vklike:listen {mode}';

Бесполезно...ничего не работает...но выход был найден...
Внутри handle прописать:
public function handle()
    {
        global $argv;
        $argv[1] = 'start';

        $ws_worker = new Worker("websocket://...:8080");

        $ws_worker->count = 4;

        $this->clients = new \SplObjectStorage();

        $ws_worker->onWorkerStart = function ($ws_worker) {};

        $ws_worker->onConnect = function ($connection) {};

        $ws_worker->onMessage = function ($connection, $data_request) {};

        $ws_worker->onClose = function ($connection) {};

        Worker::runAll();
    }

Все ок, запускается, но странно очень себя ведет. Будто для каждого соединения создается отдельный слушатель сокетов...
На дебаге все как часы...все работает....

Помогите пожалуйста...
  • Вопрос задан
  • 1150 просмотров
Решения вопроса 1
@RookDeveloper Автор вопроса
Все сделано верно! Просто нужно было поставить $ws_worker->count = 1.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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