小编poo*_*zko的帖子

Connect.sid 始终未定义并且 req.sessionID 不断重置

我对 NodeJS/Express/Socket.IO 很陌生,并且使用 Socket.IO 通信制作了一个简单的石头剪刀布应用程序(在客户端我使用的是 AngularJS)。到目前为止,应用程序的那部分工作得很好。

但是,我开始致力于使用 Redis 实现会话,并偶然发现了一些问题。由于我这样做是为了学习,因此我决定使用套接字来制作应用程序的一部分(玩石头剪刀布游戏的整个实时部分),而另一部分则不需要真正的- 使用常规 REST 的时间组件(排行榜、查看其他人的个人资料等)。

我遇到的问题是 connect.sid cookie 从未在客户端上设置。我做了一个简单的checkSessionREST 调用来测试会话是否持续存在,但似乎不是。我在checkSession通话中还注意到,req.sessionID总是给我一个全新的 sessionID。现在,我不确定是否应该connect.sid手动创建,还是节点应该自动处理?如果我应该做,我该怎么做?“设置授权”回调也从不包含connect.sid握手对象中的cookie。

另外,从我在研究这个过程中读到的内容来看,在常规 REST (Express) 和 Socket.IO 之间共享会话可能有点麻烦。这是我的代码(我关闭了整个石头剪刀布逻辑以确保这不是导致问题的原因)。

package.json

{
  "name": "RPSLS.Node",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.5.1",
    "session": "0.1.0",
    "socket.io": "0.9.16",
    "redis": "0.10.2",
    "connect-redis": "1.4.7"
  }
}
Run Code Online (Sandbox Code Playgroud)

app.js

var express = require('express');
var parseCookie = express.cookieParser("megaultrasupersecret");

var http = require('http');
var path = …
Run Code Online (Sandbox Code Playgroud)

cookies session redis node.js angularjs

3
推荐指数
1
解决办法
4005
查看次数

JSHint和JSCS内联忽略了相同的下一行

是否有可能以某种方式使JSHint和JSCS在同一下一行的内联忽略上很好地发挥作用?

我想做的事情如下:

/* jshint camelcase: false, jscs requireCamelCaseOrUpperCaseIdentifiers: false */
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的变体(单独的"注释块",中间用分号,忽略不同的行),但无法使其工作.也许我错过了一些明显的东西?或者它根本不可能?日Thnx.

javascript jshint jscs

3
推荐指数
1
解决办法
1915
查看次数

PHP按一定标准排序对象数组?

我有这样的事情:

$i = 0;

foreach($tracks['results'] as $track){
    $trackName[$i] = $track['name'];
    $trackPlaycount[$track['name']] = $track['playcount'];
    $trackPercent[$track['name']] = $track['percent'];
    $i++;
}

$this->trackName = $trackName;
$this->trackPlaycount = $trackPlaycount;
$this->trackPercent = $trackPercent;
Run Code Online (Sandbox Code Playgroud)

我怎么能用playcount对这些对象进行排序?从我到目前为止阅读的内容中我了解到我应该创建一个比较函数,然后使用usort(),对吧?但我不太清楚如何实现这一目标......

谢谢




编辑:好的,所以现在我有这样的:

public function firstmethod(){
    // there are some more parameters here of course
    // but they worked before, not important for the problem
    $i = 0;
    foreach($tracks['results'] as $track){
        $trackName[$i] = $track['name'];
        $trackPlaycount[$track['name']] = $track['playcount'];
        $trackPercent[$track['name']] = $track['percent'];
        // this part is new
        $tracksArray[$i] = array(
            'name' => $trackName[$i], 
            'playcount' …
Run Code Online (Sandbox Code Playgroud)

php sorting object

1
推荐指数
2
解决办法
1081
查看次数

从单行用户输入将字符串拆分为整数?

我刚开始学习一些红宝石,我想做这样的事情:

print "Insert two numbers: "
a, b = gets.split(" ")
Run Code Online (Sandbox Code Playgroud)

但是我想让a和b同时成为整数(在同一行).如果我添加.to_i到第二行(之前或之后split(" ")),它不起作用......所以,我该怎么办这个?映射,分裂,切片?好吧,我知道我可以使用scanf,但除了scanf之外,我该怎么做?

抱歉这样一个noobish问题,但我只是找不到一个足够好的答案只有谷歌搜索...

ruby split user-input

1
推荐指数
1
解决办法
1225
查看次数

填充列表时Python内存泄漏 - 如何解决?

我有一段看起来像这样的代码:

downloadsByExtensionCount = defaultdict(int)
downloadsByExtensionList = []
logFiles = ['file1.log', 'file2.log', 'file3.log', 'file4.log']


for logFile in logFiles:
    log = open(logFile, 'r', encoding='utf-8')
    logLines = log.readlines()

    for logLine in logLines:
        date, time, c_ip, cs_method, s_port, cs_uri_stem, cs_user_agent = logLine.split(" ")

        downloadsByExtensionCount[cs_uri_stem] += 1
        downloadsByExtensionList.append([date, time, c_ip, cs_method, s_port, cs_uri_stem, cs_user_agent])
Run Code Online (Sandbox Code Playgroud)

这四个文件中的每一个大约150MB,每个文件大约有6万到8万行.

我开始只使用其中一个文件制作脚本,因为我以更快的方式测试功能,但现在我拥有了所有逻辑和功能,我当然尝试在所有四个日志文件上同时运行它.当脚本开始从第四个文件中获取数据时,我得到的是:

Traceback (most recent call last):
    File "C:\Python32\lib\codecs.py", line 300, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
MemoryError
Run Code Online (Sandbox Code Playgroud)

所以 - 我看看这个东西消耗了多少内存,这就是我发现的:

脚本读取前三个文件并到达大约1800-1950MB的某个位置,然后它开始读取最后一个文件增加50-100MB,然后我得到错误.我尝试运行脚本,最后一行(追加)被注释掉,然后它总共达到500MB左右.

那么,我做错了什么?这四个文件总共大约600MB,并且脚本消耗大约1500个用于填充列表,只有四个文件中的三个

我真的不明白为什么......我怎么能改善这个?谢谢.

python memory-leaks list

1
推荐指数
1
解决办法
740
查看次数

如何在Jison中检测换行?

我有一段Jison的代码,看起来像这样:

%lex
%options flex

%{
if (!('regions' in yy)) {
    yy.regions = [];
}
%}

text                [a-zA-Z][a-zA-Z0-9]*

%%

\s+                 /* skip whitespace */
\n+                 return 'NL';
","                 return ',';
"-"                 return '-';
"["                 return '[';
"]"                 return ']';
{text}              return 'TEXT';
<<EOF>>             return 'EOF';

/lex

%start expressions

%%

expressions
    : content EOF
        {
            console.log(yy.regions);
            return yy.regions; 
        }
    | EOF
        {
            console.log("empty file");
            return yy.regions; 
        }
    ;

content
    : line NL content
        { console.log("NL"); }
    | line content
        { console.log("no NL"); …
Run Code Online (Sandbox Code Playgroud)

parsing bison jison

1
推荐指数
1
解决办法
355
查看次数