我正在开发 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);"
.
或者我想坚持把我的 websocket 发送到 Doctrine 中。(比如保存连接到 websocket 通道的任何人发送的每条消息。
就像你看到的,我对 Symfony2 和 websocket 不太满意,但我正在学习!
我希望我很清楚(对不起我的英语......)并且有人可以帮助我!谢谢。