回覆列表
  • 1 # 使用者1213734083852

    PHP自帶的SESSION會話機制是這樣的:

    PHP-FPM根據瀏覽器傳來的一個名為PHPSESSID的HTTP cookie確定要訪問的會話檔案,然後填充超全域性變數$_SESSION.

    WebSocket建立連線時,也可以拿到這個HTTP cookie(注意跨域問題:AJAX跨域區分域名和埠,COOKIE區分域名但不區分埠),同理你可以根據這個PHPSESSID讀取伺服器上的會話檔案,unserialize反序列化就能拿到會話陣列,如果你要寫入會話,記得先用 flock($fp, LOCK_EX) 排它鎖鎖定後再寫入,只是讀的話就不需要了.

    但個人不建議使用PHP自帶的SESSION會話機制,除非你的應用定位就是單臺伺服器.否則還是建議使用cookie驗證身份(解密cookie,根據id比對salt),Redis儲存使用者資料:

    user:10001:name => "tux"

    user:10001:age => 27

    這樣不同語言都可以訪問到這些資料,而且可以把程式部署到其他伺服器也沒有問題.

  • 中秋節和大豐收的關聯?
  • 定做的紅木傢俱三個月合同到期了沒交貨怎麼辦?