【问题标题】:msgpack / messagepack not serializing phpmsgpack / messagepack 不序列化 php
【发布时间】:2014-04-30 09:21:28
【问题描述】:

我正在尝试从节点访问通过存储在 memcached 中的 php 设置的会话变量。

我真的希望存储会话数据的格式为 JSON。

我找到了 msgpack 并且看起来它可以完成这项工作,但是,节点内会话数据的 console.log 显示项目被分开了一点?标记:

���user_id�1�company_id�1�fname�name�lname�lname�lactivity�S.7��login_st....等等

我的 php 文件

//以漂亮的JSON格式序列化

ini_set('session.serialize_handler', 'msgpack');

//使用MEMCACHED保存会话

ini_set('session.save_handler', 'memcached');

//memcached 正在运行的端口

ini_set('session.save_path', 'localhost:11211');

我正在尝试从节点访问 php 会话,我在其中使用 JSON.parse,但它总是出现无效字符错误。

如果有人有任何想法,我将不胜感激!

授予

【问题讨论】:

    标签: php node.js session msgpack messagepack


    【解决方案1】:

    Messagepack 不是 JSON,因此在 Messagepack 的数据上使用 JSON.parse 将不起作用。

    你应该使用这个Node module,它允许在 Node 中解析 Messagepack 的对象。

    示例用法:

    var msgpack = require('msgpack'); // import the node-msgpack module
    
    var unpacked = msgpack.unpack(packed); // unpack the "packed" variable
    

    【讨论】:

    • 我最初确实尝试过这个,但是我在安装时遇到了以下问题:pastebin 这是我第一次遇到 npm 包错误。我也试过了,nodedir=/path/to/node/ 指令导致:**pastebin** 谢谢你的时间。
    • 所以我终于通过卸载节点并重新安装最新的稳定版本来安装 msgpack。但是,当尝试解包时:var unpacked = msgpack.unpack(result) 我得到 TypeError: First argument must be a BufferThanks
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多