2015-04-23 2 views
2

Я использую Symfony2 с ClankBundle для funciontality для WebSocket. Я следил за инструкциями here (PdoSessionHandler) и here (Clank Session sharing), но все же я не могу получить информацию, хранящуюся в сеансе.Symfony2 и ClankBundle: не могут делиться сеансом

Я до сих пор с помощью встроенной отладки сервера, предоставленной Symfony, который работает на http://127.0.0.1:8000

Мой parameters.yml

parameters: 
    clank_host: 127.0.0.1 
    clank_port: 8080 

Мой config.yml

framework: 
    session: 
     handler_id: session.handler.pdo 

clank: 
    web_socket_server: 
     port: "%clank_port%" 
     host: "%clank_host%" 
    session_handler: session.handler.pdo 

В контроллере :

$session = $this->get('session'); 
    $session->set('user_token', $user->getId()); 

В теме услуг:

public function onSubscribe(Conn $conn, $topic) 
{ 
    file_put_contents('debug.txt', "onSubscribe" .$conn->resourceId . " connected" . " ".$conn->Session->get('user_token'). PHP_EOL, FILE_APPEND | LOCK_EX); 
    // ... 
} 

и сценарий на странице:

var myClank = Clank.connect("ws://127.0.0.1:8080"); 

myClank.on("socket/connect", function(session){ 
    console.log("Successfully Connected!"); 
    session.subscribe("topicservice/channel", function(uri, payload){ 
     console.log("Received message"); 
    }); 
    // ... 
}) 

Bit еще, когда пользователи подключаются и подписываться, $conn->Session->get('user_token') возвращает нуль.

Любые идеи о том, что я делаю неправильно? Заранее спасибо

ответ

0

Я нашел, в чем проблема.

Symfony встроенный сервер и сервер кланов работают на 127.0.0.1, но я получал доступ из браузера в localhost.

Кажется, что это считается двумя разными доменами. Хорошо знать.

Смежные вопросы