Laravel 5.1:在后台运行自定义Artisan命令
我正在使用的聊天应用程序。在教程的帮助下,我编写了一个自定义artisan命令来启动Websocket服务器。我需要在后台运行Artisan命令,它应该一直在运行。我该怎么做 我试着使用Artisan Facade。但由于我的自定义命令无限期(长时间)运行,它无法工作 编辑: 我的主机提供商不允许我通过ssh运行Artisan命令 以下是自定义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
<?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,它有一年免费计划。