我用 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/