2014-07-16 86 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。然而,我有偏见。