mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 20:52:48 +08:00
改进Socket驱动
This commit is contained in:
@@ -40,7 +40,7 @@ class Socket
|
||||
'big' => 'font-size:20px;color:red;',
|
||||
];
|
||||
|
||||
protected $_allowForceClientIds = []; //配置强制推送且被授权的client_id
|
||||
protected $allowForceClientIds = []; //配置强制推送且被授权的client_id
|
||||
|
||||
/**
|
||||
* 架构函数
|
||||
@@ -52,10 +52,6 @@ class Socket
|
||||
if (!empty($config)) {
|
||||
$this->config = array_merge($this->config, $config);
|
||||
}
|
||||
if (isset($this->config['allow_client_id'])) {
|
||||
//兼容旧配置
|
||||
$this->allow_client_ids = array_merge($this->allow_client_ids, [$this->config['allow_client_id']]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -120,9 +116,9 @@ class Socket
|
||||
$client_id = '';
|
||||
}
|
||||
|
||||
if (!empty($this->_allowForceClientIds)) {
|
||||
if (!empty($this->allowForceClientIds)) {
|
||||
//强制推送到多个client_id
|
||||
foreach ($this->_allowForceClientIds as $force_client_id) {
|
||||
foreach ($this->allowForceClientIds as $force_client_id) {
|
||||
$client_id = $force_client_id;
|
||||
$this->sendToClient($tabid, $client_id, $logs, $force_client_id);
|
||||
}
|
||||
@@ -142,12 +138,12 @@ class Socket
|
||||
*/
|
||||
protected function sendToClient($tabid, $client_id, $logs, $force_client_id)
|
||||
{
|
||||
$logs = array(
|
||||
$logs = [
|
||||
'tabid' => $tabid,
|
||||
'client_id' => $client_id,
|
||||
'logs' => $logs,
|
||||
'force_client_id' => $force_client_id,
|
||||
);
|
||||
];
|
||||
$msg = @json_encode($logs);
|
||||
$address = '/' . $client_id; //将client_id作为地址, server端通过地址判断将日志发布给谁
|
||||
$this->send($this->config['host'], $msg, $address);
|
||||
@@ -167,8 +163,8 @@ class Socket
|
||||
$allow_client_ids = $this->config['allow_client_ids'];
|
||||
if (!empty($allow_client_ids)) {
|
||||
//通过数组交集得出授权强制推送的client_id
|
||||
$this->_allowForceClientIds = array_intersect($allow_client_ids, $this->config['force_client_ids']);
|
||||
if (!$tabid && count($this->_allowForceClientIds)) {
|
||||
$this->allowForceClientIds = array_intersect($allow_client_ids, $this->config['force_client_ids']);
|
||||
if (!$tabid && count($this->allowForceClientIds)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -177,7 +173,7 @@ class Socket
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
$this->_allowForceClientIds = $this->config['force_client_ids'];
|
||||
$this->allowForceClientIds = $this->config['force_client_ids'];
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user