Skip to content

Commit 42ac792

Browse files
authored
Merge pull request #8 from WyriHaximus/patch-1
Pass connecting time exceptions into the client observer
2 parents 9e8e40f + d23c880 commit 42ac792

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/Client.php

+4
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ public function _subscribe(ObserverInterface $clientObserver): DisposableInterfa
5858

5959
$request = $client->request('GET', $this->url, $flatHeaders, '1.1');
6060

61+
$request->on('error', function ($error) use ($clientObserver) {
62+
$clientObserver->onError($error);
63+
});
64+
6165
$request->on('response', function (Response $response, Request $request) use ($flatHeaders, $cNegotiator, $nRequest, $clientObserver) {
6266
if ($response->getCode() !== 101) {
6367
throw new \Exception('Unexpected response code ' . $response->getCode());

test/ClientTest.php

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Rx\Websocket\Test;
4+
5+
use React\EventLoop\Factory;
6+
7+
class ClientTest extends \PHPUnit_Framework_TestCase
8+
{
9+
public function testErrorBeforeRequest()
10+
{
11+
$loop = Factory::create();
12+
13+
$client = new \Rx\Websocket\Client('ws://127.0.0.1:12340/', false, [], $loop);
14+
15+
$errored = false;
16+
17+
$client->subscribe(
18+
null,
19+
function ($err) use (&$errored) {
20+
$errored = true;
21+
}
22+
);
23+
24+
$loop->run();
25+
26+
$this->assertTrue($errored);
27+
}
28+
}

0 commit comments

Comments
 (0)