@@ -142,14 +142,14 @@ public function channel(string $channel): Observable
142
142
143
143
$ subscribe = $ this ->connected
144
144
->do (function (Event $ event ) use ($ channel ): void {
145
- $ authKey = null ;
145
+ $ authKey = $ channelData = null ;
146
146
147
147
if (str_starts_with ($ channel , 'private- ' ) || str_starts_with ($ channel , 'presence- ' )) {
148
- $ authKey = $ this ->generateAuthToken ($ channel , $ event ->getData ()['socket_id ' ]);
148
+ [ $ authKey, $ channelData ] = $ this ->generateAuthToken ($ channel , $ event ->getData ()['socket_id ' ]);
149
149
}
150
150
151
151
// Subscribe to pusher channel after connected
152
- $ this ->send (Event::subscribeOn ($ channel , $ authKey ));
152
+ $ this ->send (Event::subscribeOn ($ channel , $ authKey, $ channelData ));
153
153
})
154
154
->flatMapTo (Observable::empty ());
155
155
@@ -265,7 +265,7 @@ private function handleLowLevelError(Throwable $throwable): Observable
265
265
/**
266
266
* @throws \Exception
267
267
*/
268
- private function generateAuthToken (string $ channel , string $ socketId ): string
268
+ private function generateAuthToken (string $ channel , string $ socketId ): array
269
269
{
270
270
if (!$ this ->authEndpoint ) {
271
271
throw new \Exception ('No auth endpoint is configured to connect private or presence channel. ' );
@@ -299,6 +299,6 @@ private function generateAuthToken(string $channel, string $socketId): string
299
299
throw new \Exception ('Invalid response for auth token. ' );
300
300
}
301
301
302
- return $ response ['auth ' ];
302
+ return [ $ response ['auth ' ], $ response [ ' channel_data ' ] ?? null ];
303
303
}
304
304
}
0 commit comments