Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.1:在后台运行自定义Artisan命令_Laravel_Websocket_Laravel 5.1_Laravel Artisan_Ratchet - Fatal编程技术网

Laravel 5.1:在后台运行自定义Artisan命令

Laravel 5.1:在后台运行自定义Artisan命令,laravel,websocket,laravel-5.1,laravel-artisan,ratchet,Laravel,Websocket,Laravel 5.1,Laravel Artisan,Ratchet,我正在使用的聊天应用程序。在教程的帮助下,我编写了一个自定义artisan命令来启动Websocket服务器。我需要在后台运行Artisan命令,它应该一直在运行。我该怎么做 我试着使用Artisan Facade。但由于我的自定义命令无限期(长时间)运行,它无法工作 编辑: 我的主机提供商不允许我通过ssh运行Artisan命令 以下是自定义Artisan命令的代码: <?php namespace App\Console\Commands; use Illuminate\Conso

我正在使用的聊天应用程序。在教程的帮助下,我编写了一个自定义artisan命令来启动Websocket服务器。我需要在后台运行Artisan命令,它应该一直在运行。我该怎么做

我试着使用Artisan Facade。但由于我的自定义命令无限期(长时间)运行,它无法工作

编辑:

我的主机提供商不允许我通过ssh运行Artisan命令

以下是自定义Artisan命令的代码:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

use Ratchet\Http\HttpServer;
use Ratchet\Server\IoServer;
use Ratchet\WebSocket\WsServer;
use App\Classes\Socket\ChatSocket;
use App\Classes\Socket\Base\BaseSocket;

class ChatServer extends Command
{
/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'chat_server:serve';

/**
 * The console command description.
 *
 * @var string
 */
protected $description = 'Command description';

/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    $this->info("Start server");

    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                new ChatSocket()
            )
        ),
        8080
    );

    $server->run();
}
}

您只需在控制台中使用以下命令运行它:

php artisan chat_server:serve

也许你应该确保它能一直工作。其中一种方法是确保此命令(几乎)一直运行

您只需在控制台中使用以下命令运行即可:

php artisan chat_server:serve

也许你应该确保它能一直工作。其中一种方法是确保此命令(几乎)一直运行

我应该提到,我在共享主机帐户中没有通过ssh访问“Artisan”命令的权限。我尝试使用此解决方案:。但是我不能让它工作。恐怕这不容易。理论上,您可以在crone(假设您有cron)中运行,例如在1分钟内
$server->run()
$server->stop()但是它不太可靠,所以你应该考虑移动到VPS主机,在那里你可以在Con中运行命令并确保它们运行所有的TimeManges。我正在考虑使用有1年免费计划的AWS。我应该提到,在我的共享主机帐户中,我没有通过ssh访问“Artisan”命令的权限。我尝试使用此解决方案:。但是我不能让它工作。恐怕这不容易。理论上,您可以在crone(假设您有cron)中运行,例如在1分钟内
$server->run()
$server->stop()但是它不太可靠,所以你应该考虑移动到VPS主机,在那里你可以在Con中运行命令并确保它们运行所有的TimeManges。我正在考虑使用AWS,它有一年免费计划。