Skip to content

Commit 0504da5

Browse files
committed
Improve websocket connection
1 parent c434ce8 commit 0504da5

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/CCatClient.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,16 @@ public function sendMessage(Message $message, ?\Closure $closure = null): Respon
3939

4040
$response = $client->receive();
4141
$message = $response->getContent();
42-
if (str_contains($message, "\"type\":\"notification\"") || str_contains($message, "\"type\":\"chat_token\"")) {
42+
if (!str_contains($message, "\"type\":\"chat\"")) {
4343
$closure?->call($this, $message);
4444
continue;
4545
}
46-
if (str_contains($message, "\"type\":\"chat\"")) {
47-
break;
48-
}
49-
50-
46+
break;
5147

5248
}
5349

50+
$client->disconnect();
51+
5452
return $this->jsonToResponse($message);
5553
}
5654

src/Clients/WSClient.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
use Phrity\Net\Uri;
66
use WebSocket\Client;
7+
use WebSocket\Middleware\CloseHandler;
8+
use WebSocket\Middleware\PingResponder;
79

810
class WSClient
911
{
@@ -34,8 +36,14 @@ public function getWsClient(string $userid = 'user'): Client
3436
->withPath(sprintf('ws/%s', $userid))
3537
->withPort($this->port)
3638
;
37-
return new Client($wsUri);
38-
39+
$client = new Client($wsUri);
40+
$client->setPersistent(true)
41+
->setTimeout(100000)
42+
// Add CloseHandler middleware
43+
->addMiddleware(new CloseHandler())
44+
// Add PingResponder middleware
45+
->addMiddleware(new PingResponder());
46+
return $client;
3947
}
4048

4149

0 commit comments

Comments
 (0)