我正在使用此捆綁將棘輪websocket整合到我的Symfony2項目中:https://github.com/GeniusesOfSymfony/WebSocketBundle如何從PHP Ratchet WebSocket中拒絕未經過身份驗證的用戶?
我正在開發一個聊天應用程序。我遇到的問題是如何限制對登錄用戶的聊天訪問?
websocket基於WAMP PubSub協議。我在ChatTopic類認購方法如下:
public function onSubscribe(ConnectionInterface $connection, Topic $topic, WampRequest $request) {
$email = $this->clientManipulator->getClient($connection)->getUsername();
$user = $this->userRepository->getByEmail($email);
$msg = array();
$msg["type"] = "userJoined";
$msg["displayName"] = $user->getDisplayName();
$topic->broadcast(['msg' => json_encode($msg)]);
}
正如你所看到的,我設法讓我的WebSocket內的用戶會話,並獲取從數據庫中的所有用戶數據。 我只是不知道如何防止未經授權的用戶訂閱聊天。
我想你可以使用'$ connection-> close()'關閉該用戶的連接。 – qooplmao