私は Symfony2 で websocket アプリに取り組んでいます。Ratchet ( http://socketo.me/ )に基づくsymfony2 バンドル コールの ClankBundle ( https://github.com/JDare/ClankChatBundle ) を使用します。
私は symfony2 で自分のサービスを正常に構成し、サーバーは動作しています... ここでの例、JS network.onSubscribe を呼び出すと、既に購読しているすべての人が情報を受け取ります。
class ChatTopic implements TopicHandlerInterface
{
/**
* Announce to this topic that someone else has joined the chat room
* Also, set their nickname to Guest if it doesnt exist.
*
* @param \Ratchet\ConnectionInterface $conn
* @param $topic
*/
public function onSubscribe(Conn $conn, $topic)
{
if (!isset($conn->ChatNickname))
{
$conn->ChatNickname = "Guest"; **how i have to do if i want to use "$this->getUser(); " here ?**
}
$msg = $conn->ChatNickname . " joined the chat room.";
$topic->broadcast(array("msg" => $msg, "from" => "System"));
}
しかし今、エンティティやフォームのように既に構築した他のツールを「サービス内」で使用したいと考えています。
たとえば、自分のサービスで「$this->getUser()」を実行して、ユーザーの擬似を返すことができるようにしたいと考えています。たとえば、チャネルに接続されているすべてのクライアントに「疑似がこのチャネルに参加しました」を返します。
このクラスは私のサービスの一部であり、内部で使用したい
$this->getUser
また
$em = $this->getDoctrine()->getManager();
$em->persist($music);"
.
または、Doctrine で websocket をスローすることを永続化したいと考えています。(websocket チャネルに接続しているすべての人から送信されたすべてのメッセージを保存するように.
ご覧のとおり、私は Symfony2 と websocket にあまり慣れていませんが、学んでいます!
私が明確であることを願っています(私の英語で申し訳ありません...)そして誰かが私を助けてくれます!ありがとう。