我正在使用Ratchet package处理聊天应用程序。在教程的帮助下,我编写了一个自定义artisan命令来启动Websocket服务器。我需要在后台运行这个Artisan命令,它应该一直运行。我该怎么做?
我尝试使用Artisan Facade的Artisan::queue and Artisan::call。但是由于我的自定义命令无限期地运行(很长一段时间),它无效。
修改
我的托管服务提供商不允许我通过ssh运行Artisan命令。
以下是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();
}
}
答案 0 :(得分:0)