30 public function action($controller_name,$action,$params =
null,$read_length = 1024){
32 if($this->localPort && ($socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)))
try{
34 socket_connect($socket,$this->localHost,$this->localPort) &&
35 (socket_write($socket,serialize(array_merge($params ?: [],[
'controller' => $controller_name,
'action' => $action]))) !==
false)
36 ) $result = socket_read($socket,$read_length);
37 socket_close($socket);
40 $this->
component(
'log')->emergency(
'Can not connect to socket server: ' . $e->getMessage(),__FILE__,__LINE__);
42 return $result ? unserialize($result) : $result;
49 public function token($params =
null){
50 if(!$this->clientPort)
return null;
51 $params = array_merge($params ?: [],[
'token' => $token = \
Rsi\Str::random(),
'sessionId' => session_id()]);
52 return $this->
action(
null,
'token',$params) ===
false ? false : $token;
56 if(!$this->_server) $this->_server =
new Socket\Server($this);