This commit is contained in:
2021-04-12 15:37:13 +08:00
parent 08e1caedfd
commit 3bdba2c993
2 changed files with 9 additions and 36 deletions
+8 -35
View File
@@ -20,47 +20,20 @@ class Emit extends Component
/**
* @param string $name
* @param int[] $users
* @param string $message
* @throws Exception
*/
public function emit(string $name, string $message)
public function emit(array $users, string $message)
{
$redis = Snowflake::app()->getRedis();
if (!$redis->exists($name) || $redis->sCard($name) < 1) {
return;
$table = Snowflake::app()->getTable('SYSTEM:ONLINE:PEOPLES');
foreach ($users as $user) {
$fd = $table->get((string)$user, ['clientId']);
Snowflake::push($fd, $message);
}
$socket = Snowflake::app()->getSwoole();
foreach ($redis->sMembers($name) as $value) {
$socket->push($value, $message);
}
}
/**
* @param string $name
* @param int $value
* @throws Exception
*/
public function register(string $name, int $value)
{
redis()->sAdd($name, $value);
}
/**
* @param string $name
* @param int|null $value
* @throws Exception
*/
public function clear(string $name, ?int $value = null)
{
if (!empty($value)) {
redis()->sRem($name, $value);
} else {
redis()->del($name);
}
}
+1 -1
View File
@@ -360,7 +360,7 @@ class Snowflake
public static function push(int $fd, $data): mixed
{
$server = static::getWebSocket();
if (empty($server)) {
if (empty($server) || !$server->isEstablished($fd)) {
return false;
}
if (!is_string($data)) {