symfony - 无法在 RPC 中获取 session 参数

标签 symfony session ratchet

我用 https://github.com/JDare/ClankBundle用于 socket 。我尝试从 RPC 服务的 session 中获取登录用户:

namespace Example\Bundle\FrontendBundle\RPC;

use Ratchet\ConnectionInterface as Conn;
use Symfony\Component\HttpFoundation\Session\Session;

class Chat
{
    private $user;

    /**
     * @param Session $session
     */
    public function __construct(Session $session)
    {
        //...
    }

    public function someMethod(Conn $conn, $params)
    {
        //...
    }
}

服务配置为:
example_frontend.chat_rpc:
    class: Example\Bundle\FrontendBundle\RPC\Chat
    arguments: ['@session']

session 与 memcached 共享。 (所有必需的配置都已完成)但是当我连接到套接字服务器并尝试获取某些东西时, session 似乎没有启动(而且 $_SESSION 也不存在)。

我该如何解决? RPC 类是从 session 中查找某些内容的正确位置吗?

最佳答案

用户的 session 被添加到连接对象 ( Ratchet\ConnectionInterface )

没有特殊的方法。只是:

/** @var \Symfony\Component\HttpFoundation\Session\Session $session */
$session = $conn->Session;

关于symfony - 无法在 RPC 中获取 session 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31043093/

相关文章:

permissions - Symfony2 : How to find the users that have permissions for a certain domain object?

javascript - 使用 JavaScript 和浏览器中保存的 cookie 获取网站的 HTML 代码

autobahn - wamp 连接因协议(protocol)违反与 Ratchet/wamp 和高速公路的标准最新版本而失败

session - Laravel 的 Artisan 从哪里获取 session 配置信息?

php - Symfony 2 - 使用子实体创建表单并上传文件

php - symfony中的构造函数注入(inject)

php - PostgreSQL 中的 Doctrine ORM ArrayCollection

session - spring 安全 session 超时

javascript - 护照 js req.user 在 req.login 后不可用

php - 是否可以在 Ratchet 连接中存储额外的变量