Я работаю над приложением чата с использованием пакета Ratchet. С помощью руководств я написал специальную команду artisan для запуска сервера Websocket. Мне нужно запустить эту Artisan-команду в фоновом режиме, и она должна работать все время. Как мне это сделать?
Я пробовал использовать Artisan :: queue и Artisan :: call от Artisan Facade. Но поскольку моя пользовательская команда работает бесконечно (долгое время), она не работает.
Изменить:
Мой хостинг-провайдер не позволяет мне запускать Artisan-команды через ssh.
Вот код для Custom Artisan Command:
<?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();
}
}