diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2021-03-03 02:17:49 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2021-03-03 02:17:49 +0300 |
commit | 61d008200024e3e1a81aafccadea205c9024cda0 (patch) | |
tree | 439d2e52e9f08793491b6b976860942e9b4a1165 | |
parent | 0e564d2812758bb532588390eb878a080402993c (diff) |
support pause()/continue(), fix poll(), other fixes
-rw-r--r-- | src/Client.php | 32 | ||||
-rw-r--r-- | src/RequestMessage.php | 2 | ||||
-rw-r--r-- | src/WorkerClient.php | 8 |
3 files changed, 39 insertions, 3 deletions
diff --git a/src/Client.php b/src/Client.php index 7f7d663..cb2fb77 100644 --- a/src/Client.php +++ b/src/Client.php @@ -48,6 +48,38 @@ class Client { } /** + * @param string[] $targets + * @return ResponseMessage + * @throws \Exception + */ + public function pause(array $targets = []): ResponseMessage + { + $data = []; + if (!empty($targets)) + $data['targets'] = $targets; + + return $this->recv( + $this->sendRequest(new RequestMessage('pause', $data)) + ); + } + + /** + * @param string[] $targets + * @return ResponseMessage + * @throws \Exception + */ + public function continue(array $targets = []): ResponseMessage + { + $data = []; + if (!empty($targets)) + $data['targets'] = $targets; + + return $this->recv( + $this->sendRequest(new RequestMessage('continue', $data)) + ); + } + + /** * @return PongMessage * @throws \Exception */ diff --git a/src/RequestMessage.php b/src/RequestMessage.php index 7799937..a2e196d 100644 --- a/src/RequestMessage.php +++ b/src/RequestMessage.php @@ -49,7 +49,7 @@ class RequestMessage extends Message { ]; if (!is_null($this->requestData)) - $request['data'] = $this->requestData; + $request['data'] = (object)$this->requestData; if (!is_null($this->password)) $request['password'] = $this->password; diff --git a/src/WorkerClient.php b/src/WorkerClient.php index 240c200..7650df6 100644 --- a/src/WorkerClient.php +++ b/src/WorkerClient.php @@ -25,10 +25,14 @@ class WorkerClient extends Client { * @return ResponseMessage * @throws \Exception */ - public function poll(array $targets): ResponseMessage + public function poll(array $targets = []): ResponseMessage { + $data = []; + if (!empty($targets)) + $data['targets'] = $targets; + return $this->recv( - $this->sendRequest(new RequestMessage('poll', ['targets' => $targets])) + $this->sendRequest(new RequestMessage('poll', $data)) ); } |