I have made an artisan command to run a websockets on some port like below
class webSockets extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'run:socket {port?}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Run websockets for specified port';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(RedisInterface $redis)
{
$this->redis=$redis;
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
$port = $this->argument('port');
if($port=='8182') {
$server = IoServer::factory(
new SocketController($this->redis),$port
);
}
else if($port=='8181'){
$server = IoServer::factory(
new Socket1Controller($this->redis),$port
);
}
$server->run();
}
}
I can run those sockets easily running an artisan command like below
php artisan run:socket 8181
php artisan run :socket 8182
I need to deploy it on a production server where thousand of devices are connected on that web sockets . I tried supervisor to daemonize the process but no luck
My conf file looks like below
[program:ratchet]
command = php /var/www/v3 artisan run:socket 8181;php /var/www/v3 artisan run:socket 8182
process_name = Ratchet
numprocs = 1
autostart = true
autorestart = true
stdout_logfile = ./logs/info.log
stderr_logfile = ./logs/error.log
I realised both port 8181 and 8182 are free and are not receiving any messages.
When I tried sudo service supervisorctl
I saw all process have uptime 0:00:00 and different pids
laravel_queue RUNNING pid 62246, uptime 0:00:00
ratchet:Ratchet RUNNING pid 62245, uptime 0:00:00
supervisor> status
laravel_queue RUNNING pid 62305, uptime 0:00:00
ratchet:Ratchet RUNNING pid 62304, uptime 0:00:00
supervisor> status
laravel_queue RUNNING pid 62419, uptime 0:00:00
ratchet:Ratchet RUNNING pid 62418, uptime 0:00:00
supervisor> status
laravel_queue RUNNING pid 62553, uptime 0:00:00
ratchet:Ratchet RUNNING pid 62552, uptime 0:00:00
supervisor> status
laravel_queue RUNNING pid 62689, uptime 0:00:00
ratchet:Ratchet RUNNING pid 62688, uptime 0:00:00
supervisor> status
laravel_queue RUNNING pid 62819, uptime 0:00:00
ratchet:Ratchet RUNNING pid 62818, uptime 0:00:00
supervisor> status
Is there anything I missed?