2014-07-14 81 views
2

我正在php中爲我的項目實現web-socket服務器。當用戶創建websocket連接時,它會將請求頭中的PHPSESSID cookie發送到web服務器頁面。 我想使用他們的PHPSESSID cookie值爲每個用戶提取會話數據。 此服務器頁面不能簡單地使用$_SESSION['name']使用PHPSESSID值訪問會話數據

對於每一個傳入套接字連接獲取會話值,我取PHPSESSID

$cookie = handshake($header, $socket_new, $host, $port); 

這裏握手函數將返回PHPSESSID的cookie。

session_id($cookie); 
session_start(); 
$username = $_SESSION['name']; 

對於每一個WebSocket連接我收到正確的Cookie,但$username只有第一次連接。 這個php文件正在後臺運行,我必須用他們的cookie來驗證用戶,但看起來session_id($cookie);只設置一次。 有沒有什麼辦法在這個單一頁面上獲取不同PHPSESSID值的會話數據。

+2

您是否在嘗試調用'session_write_close()'之前移動到一個新的ID? – grossvogel

+0

感謝@grossvogel它的工作。非常感謝 –

回答

0

正如@grossvogel所提到的,只是在session_id()函數之前使用session_write_close()函數可以使用PHPSESSID cookie爲不同會話提取值。 現在我可以在單個頁面內使用不同的會話