Nodejs Memcached无法找到PHP存储

时间:2018-09-02 19:08:59

标签: javascript php node.js linux memcached

我刚刚在我的debian服务器上设置了memcached以在nodejs(聊天服务器)和PHP(网站)之间交换会话。这就是我现在所走的距离。

我已配置PHP将会话详细信息保存在memcached中并运行此脚本。

<?php
error_reporting(E_ALL);
session_start();
 $_SESSION['some'] = 'thing';
 echo session_id()."\n";
 print_r($_SESSION);

我也尝试通过memcached-tool获取数据

/usr/share/memcached/scripts/memcached-tool localhost:11211 dump

在与梨相关的一些错误之后,我得到了这个输出(除非有人说nodejs意外地使用了Pearl,否则我不会发布它们)

Dumping memcache contents

桶数:1   件数:1 自卸斗2-1共1件 添加memc.sess.etnq8q744bdc6srknrdu78a5e4 0 1535915171 17 some | s:5:“事物”;

所以我想它到目前为止已经奏效了。现在我写了这个nodejs脚本

const cookie = require('cookie');

const Memcached = require('memcached');
const PHPUnserialize = require('php-unserialize');

    var mem = new Memcached('127.0.0.1:11211');

    mem.set('foo', 'dass',100,function(err){
        console.log('Error1:'+err);
    });
    mem.get('foo', function(err, data) {
        console.log('Error:'+err);
        console.log('Data'+data);
    });

    var PHPSESSID = cookie.parse(socket.request.headers.cookie).P$
    console.log(PHPSESSID);

    mem.get(PHPSESSID, function(err, data){
        if(err) return console.error(err);
        if(data===false)return console.error('could not retreive $
        console.log('raw data:',data);
    });

不幸的是,我得到了之前设置的值“ dass”,但其他所有值均未定义

etnq8q744bdc6srknrdu78a5e4
output send
Error1:undefined
Error:undefined
Datadass
raw data: undefined

我认为连接到内存缓存服务器的方式或位置必须有任何区别。但是我找不到执行此操作的任何代码。我也看不到使用memcached-tool

插入的nodejs值

这些只是抠图。完整的代码和完整的输出在这里

代码 https://pastebin.com/3uQqZFai

输出 https://pastebin.com/991ebxfq

在添加memcached之前,代码可以正常工作。现在它也很麻烦,但是内存缓存部分。 我也使用工作中的客户端进行连接以触发memcached部分。而且我也知道这段代码并不完美。我仍然致力于理解全部内容。 P

0 个答案:

没有答案