36 private $running =
false;
50 register_shutdown_function(array($this,
'stop'));
57 public function flush()
59 $this->client->delete(
'guzzle-server/requests')->send();
71 public function enqueue($responses)
74 foreach ((array) $responses as $response) {
77 if (is_string($response)) {
79 } elseif (!($response instanceof Response)) {
84 'statusCode' => $response->getStatusCode(),
85 'reasonPhrase' => $response->getReasonPhrase(),
86 'headers' => $response->getHeaders()->toArray(),
87 'body' => $response->getBody(
true)
91 $request = $this->client->put(
'guzzle-server/responses',
null, json_encode($data));
102 if ($this->running) {
107 $this->client->get(
'guzzle-server/perf', array(), array(
'timeout' => 5))->send();
108 $this->running =
true;
110 }
catch (\Exception $e) {
122 return 'http://127.0.0.1:' . $this->
getPort() .
'/';
147 $response = $this->client->get(
'guzzle-server/requests')->send();
148 $data = array_filter(explode(self::REQUEST_DELIMITER, $response->getBody(
true)));
150 $data = array_map(
function($message) {
161 public function start()
164 exec(
'node ' . __DIR__ . \DIRECTORY_SEPARATOR
165 .
'server.js ' . $this->port
166 .
' >> /tmp/server.log 2>&1 &');
171 if (!$this->running) {
173 'Unable to contact server.js. Have you installed node.js v0.5.0+? node must be in your path.'
182 public function stop()
188 $this->running =
false;
189 $this->client->delete(
'guzzle-server')->send();