2015-04-23 93 views
2

我使用Symfony2和ClankBundle來實現WebSocket功能。 我按照here (PdoSessionHandler)here (Clank Session sharing)的說明操作,但仍然無法獲取存儲在會話中的信息。Symfony2和ClankBundle:不能共享會話

我仍在使用內置的上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 

運行在控制器通過Symfony的提供調試服務器:

$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"); 
    }); 
    // ... 
}) 

位依然,當用戶連接和訂閱,$conn->Session->get('user_token')返回null。

關於我在做什麼的錯誤? 謝謝你提前

回答

0

我發現問題是什麼。

Symfony內置服務器和叮咬服務器都在127.0.0.1上運行,但我從瀏覽器訪問到localhost

看來這些被認爲是兩個不同的領域。很高興知道。