2014-07-16 110 views
3

我想我們主要的PHP應用程序之間共享會話信息和Node.js的的Node.js和PHP會話共享

我們目前使用的後臺數據庫實現會話存儲,因爲我們有多個Web服務器可以處理請求。

有沒有人知道任何從node.js訪問會話數據的解決方案?我能看到的唯一使用redis或memcache的,但是我們不能改變存儲會話數據的方法。

+0

如果你不能改變方法,那麼你唯一的選擇是從數據庫中檢索會話數據並在Node中解析它? –

+0

是的,我可以寫,我只是想知道如果有人以前做過。 –

回答

2

您將不得不使用通用格式,如JSON或您自己的發明之一。爲了方便,我們假設JSON。

在PHP方面,您將需要register your own session handler

session.name設置爲更少的PHP特定的,例如SESSID而不是PHPSESSID。

Set session.serialize_handler to php_serialize。在write()方法中,通過首先調用unserialize()將傳入的$數據轉換爲JSON,然後調用json_encode()並在數據庫中設置重新編碼的數據。

同樣,的read()方法應該從數據庫中提取會話數據(給定存儲在SESSID cookie中的ID值),在其上調用json_decode(),然後serialize並將其返回的字符串。

我可以建議一個快速可擴展可靠數據庫,如Aerospike。然而,我有偏見。