私はこのバンドルを使用して、Ratchet websocketをSymfony2プロジェクトに統合しています:https://github.com/GeniusesOfSymfony/WebSocketBundlePHPから非認証ユーザを拒否する方法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内のユーザーセッションを取得し、DBからすべてのユーザーデータをフェッチするために管理。 私は、権限のないユーザーがチャットに登録するのを防ぐ方法を知りません。
'$ connection-> close()'を使ってそのユーザの接続を閉じることができます。 – qooplmao