Skip to content

Commit 16bded1

Browse files
author
Alex
committed
Upgrading to new version [2.0] of ollyxar/websockets
1 parent 3022f15 commit 16bded1

File tree

2 files changed

+31
-16
lines changed

2 files changed

+31
-16
lines changed

README.md

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,13 @@ First you have to install auth-helper:
6666
```php
6767
namespace App;
6868

69-
use Ollyxar\LaravelAuth\FileAuth;
70-
use Ollyxar\WebSockets\Frame;
71-
use Ollyxar\WebSockets\Worker;
69+
use Generator;
70+
use Ollyxar\LaravelAuth\RedisAuth;
71+
use Ollyxar\WebSockets\{
72+
Frame,
73+
Handler as Worker,
74+
Dispatcher
75+
};
7276

7377
/**
7478
* Class Handler
@@ -83,6 +87,13 @@ First you have to install auth-helper:
8387
*/
8488
protected $users = [];
8589

90+
/**
91+
* Append connected user
92+
*
93+
* @param array $headers
94+
* @param $socket
95+
* @return bool
96+
*/
8697
private function fillUser(array $headers, $socket): bool
8798
{
8899
if ($userId = FileAuth::getUserIdByHeaders($headers)) {
@@ -98,47 +109,51 @@ First you have to install auth-helper:
98109

99110
/**
100111
* @param $client
112+
* @return Generator
101113
*/
102-
protected function onConnect($client): void
114+
protected function onConnect($client): Generator
103115
{
104116
$userName = User::where('id', (int)$this->users[(int)$client])->first()->name;
105-
106-
$this->sendToAll(Frame::encode(json_encode([
117+
yield Dispatcher::async($this->broadcast(Frame::encode(json_encode([
107118
'type' => 'system',
108119
'message' => $userName . ' connected.'
109-
])));
120+
]))));
110121
}
111122

112123
/**
113124
* @param array $headers
114125
* @param $socket
115126
* @return bool
116127
*/
117-
protected function afterHandshake(array $headers, $socket): bool
128+
protected function validateClient(array $headers, $socket): bool
118129
{
119130
return $this->fillUser($headers, $socket);
120131
}
121132

122133
/**
123134
* @param $clientNumber
135+
* @return Generator
124136
*/
125-
protected function onClose($clientNumber): void
137+
protected function onClose($clientNumber): Generator
126138
{
127-
$userName = User::where('id', (int)$this->users[$clientNumber])->first()->name;
139+
$user = User::where('id', (int)@$this->users[$clientNumber])->first();
140+
$userName = data_get($user, 'name', '[GUEST]');
128141

129-
$this->sendToAll(Frame::encode(json_encode([
142+
yield Dispatcher::async($this->broadcast(Frame::encode(json_encode([
130143
'type' => 'system',
131144
'message' => $userName . " disconnected."
132-
])));
133-
145+
]))));
146+
134147
unset($this->users[$clientNumber]);
148+
yield;
135149
}
136150

137151
/**
138152
* @param string $message
139153
* @param int $socketId
154+
* @return Generator
140155
*/
141-
protected function onDirectMessage(string $message, int $socketId): void
156+
protected function onClientMessage(string $message, int $socketId): Generator
142157
{
143158
$message = json_decode($message);
144159
$userName = User::where('id', (int)$this->users[$socketId])->first()->name;
@@ -150,7 +165,7 @@ First you have to install auth-helper:
150165
'message' => $userMessage
151166
]));
152167

153-
$this->sendToAll($response);
168+
yield Dispatcher::async($this->broadcast($response));
154169
}
155170
}
156171
```

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"require": {
2020
"php": ">=7.1",
2121
"illuminate/console": "^5.0",
22-
"ollyxar/websockets": "^1.0"
22+
"ollyxar/websockets": "^2.0"
2323
},
2424
"autoload": {
2525
"psr-4": {

0 commit comments

Comments
 (0)