我需要訪問Node.js中的PHP會話,所以我認爲一個好主意應該是將會話編碼爲JSON,並將其解碼爲Node.js.PHP自定義session.serialize_handler JSON
我知道我可以設置session.save_handler = memcached
,但是有沒有辦法設置session.serialize_handler = some_json_handler
?還是我必須使用session_set_save_handler
自己編碼?
任何幫助非常感謝!
我需要訪問Node.js中的PHP會話,所以我認爲一個好主意應該是將會話編碼爲JSON,並將其解碼爲Node.js.PHP自定義session.serialize_handler JSON
我知道我可以設置session.save_handler = memcached
,但是有沒有辦法設置session.serialize_handler = some_json_handler
?還是我必須使用session_set_save_handler
自己編碼?
任何幫助非常感謝!
我有同樣的要求。我正在使用龍捲風並需要訪問python中的php會話。 請點擊此鏈接https://github.com/lboynton/memcached-json-session-save-handler/blob/master/library/Lboy/Session/SaveHandler/Memcached.php
。 希望這有助於。
我已經得到了它與couchbase,至少是一個概念證明。你可能想試試這個https://github.com/msgpack/msgpack-php和node.js相等。這應該看你是對的。
的代碼有是爾康那麼你的目的可能不是很有用,但爲了完整起見(其中$this->_instance()
返回couchbase /內存緩存實例)
\ini_set('session.serialize_handler', 'msgpack');
,並在會話處理器
public function read($sessionId){
$data = $this->_instance()->get($this->_getSessionId($sessionId), $this->getOption('lifetime'));
if(!empty($data)){
$data = json_decode($data, true);
return \msgpack_pack($data);
}
return '';
}
public function write($sessionId, $data){
session_decode($data);
$serializedData = json_encode($_SESSION);
$this->_instance()->save($this->_getSessionId($sessionId), $serializedData, $this->getOption('lifetime'));
}
我無法讓msgpack與phalcon/couchbase/node在我有的時候一起工作,因爲會話的工作量只有很小的百分比,還需要學習節點,編寫應用程序以查明它是否即使做我們想要的;)
我使用msgpack因爲我不能用session_encode()在我的PHP出於某種原因,可能是由於MVC實現
節點JS的東西 - 它使用快遞,並且是我在節點的第一次嘗試,這樣記住:)
var memcache = require("memcache");
var client = new memcache.Client(11211, "localhost");
client.connect();
client.get("/sessions/"+req.cookies.PHPSESSID, function(error, result){
if(typeof(error)==="undefined"){
var session = JSON.parse(result);
console.log('session : ',session);
res.render('view/name', { title: 'Express' , sessionData: session});
}
我想你必須自己編碼。我建議實現SessionHandler/SessionHandlerInterface(如果可能,PHP> 5.4) - 在我看來,這是一種比爲會話處理註冊簡單函數更簡潔的方法。 http://www.php.net/manual/en/class.sessionhandler.php – CBroe
@CBroe我在PHP 5.3.3上。我可以像'session_set_save_handler(array($ this,'open'),...')綁定它,以避免簡單的函數 – Aley