dootask/app/Tasks/LineTask.php
2021-06-06 16:54:14 +08:00

53 lines
1.1 KiB
PHP

<?php
namespace App\Tasks;
use App\Models\WebSocket;
@error_reporting(E_ALL & ~E_NOTICE);
/**
* 上线、离线通知
* Class LineTask
* @package App\Tasks
*/
class LineTask extends AbstractTask
{
protected $userid;
protected $online;
/**
* LineTask constructor.
* @param $userid
* @param bool $online
*/
public function __construct($userid, bool $online)
{
$this->userid = $userid;
$this->online = $online;
}
public function start()
{
WebSocket::where('userid', '!=', $this->userid)->chunk(100, function ($list) {
$fd = [];
foreach ($list as $ws) {
$fd[] = $ws->fd;
}
if ($fd) {
PushTask::push([
'fd' => $fd,
'msg' => [
'type' => 'line',
'data' => [
'userid' => $this->userid,
'online' => $this->online,
],
]
]);
}
});
}
}