2013-07-23 65 views
1

我想在不使用Symfony會話的情況下使用棘輪,並在我的web應用程序和棘輪之間處理與php處理程序的會話。但它不起作用。沒有Symfony會話的棘輪

我的會話處理代碼:

運行服務器:session.php`

ini_set('session.save_handler', 'memcached'); 
ini_set('session.save_path', 'localhost:11211'); 

use Ratchet\Server\IoServer; 
use Ratchet\WebSocket\WsServer; 
use MyApp\Chat; 

    require dirname(__DIR__) . '/vendor/autoload.php'; 
    require __DIR__ . './../src/MyApp/Chat.php'; 

    $server = IoServer::factory(
    new WsServer(
    new Chat() 
    ) 
    , 8080 
); 

    $server->run(); 

我的應用程序:chat.php

public function onOpen(ConnectionInterface $conn) { 

     // Store the new connection to send messages to later 
     $this->clients->attach($conn); 

     session_start(); 

     echo "New connection! ({$conn->resourceId})\n"; 
     $conn->send('Hello ' . session_id()); 

客戶端:

ini_set('session.save_handler', 'memcached'); 
ini_set('session.save_path', 'localhost:11211'); 

session_start(); 

require __DIR__ . './../server/vendor/autoload.php'; 

$_SESSION['name'] = $_GET['name']; 

if (isset($_SESSION['name'])) { 
    var_dump($_SESSION['name']); 
} else { 
    echo 'Not set!!!'; 
} 

我的請求URL:localhost/myfile/?name=shahrokh

回答

1

這是行不通的。從Ratchet doc

爲了訪問棘輪會話數據,你也必須使用同一 屆Symfony的處理程序上你的網站。

+0

也看到這個問題:http://stackoverflow.com/questions/16183917/starting-a-session-within-a-ratchet-websocket-connection AFAIK你必須從symfony視圖開始會話訪問它在棘輪中,即使你正在使用symfony會話處理程序。 – mattexx