小编Luk*_*nis的帖子

如何防止Node.js将套接字消息拆分成更小的块

我有一个聊天程序,通过TCP套接字将JSON数据从Apache/PHP推送到Node.js:

// Node.js (Javascript)
phpListener = net.createServer(function(stream)
{
    stream.setEncoding("utf8");
    stream.on("data", function(txt)
    {
        var json = JSON.parse(txt);

        // do stuff with json
    }
}
phpListener.listen("8887", 'localhost');

// Apache (PHP)
$sock = stream_socket_client("tcp://localhost:8887");
$written = fwrite($sock, $json_string);
fclose($sock);
Run Code Online (Sandbox Code Playgroud)

问题是,如果JSON字符串足够大(大约8k),输出消息将被拆分为多个块,并且JSON解析器失败.PHP返回$ written值作为字符串的正确长度,但数据事件处理程序触发两次或更多次.

我是否应该将该函数附加到另一个事件,或者是否有办法在事件触发期间缓存文本,这种方式不会在重负载下屈服于竞争条件?或者其他一些我没有想过的解决方案?

谢谢!

php sockets apache stream node.js

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

如何将Chrome Web Inspector停靠在浏览器的一侧而不是底部?

它目前停靠在浏览器的底部.

我知道它可以分成一个单独的窗口,但我希望它停靠在浏览器的一侧.

google-chrome web-inspector

5
推荐指数
3
解决办法
9236
查看次数

在Javascript中使用正则表达式仅检索匹配字符串的一部分

我有一个字符串

foo (123) bar
Run Code Online (Sandbox Code Playgroud)

我想检索与分隔符包围所有的数字().

如果我使用varname.match(/\([0-9]+\)/),我的分隔符包含在响应中,当我真正想要的是"123"时,我得到"(123)".

如何在不跟进的情况下检索匹配字符串的一部分varname.replace()

javascript regex

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

有没有办法在Firefox 23中的AudioContext上使用createMediaStreamSource?

Firefox 23理论上支持Web Audio API; 但是,以下在Chrome Canary中有效的代码段在Firefox Aurora中失败:

var theAudioContext = new AudioContext;
navigator.getUserMedia({"audio": true}, function(stream) {
    var input = theAudioContext.createMediaStreamSource(stream);
    // theAudioContext.createMediaStreamSource is not a function
},
function(){ /* err */ });
Run Code Online (Sandbox Code Playgroud)

是否支持将此API作为Firefox的一部分进行规划,或者今天是否有其他方式与MediaStream一起使用?

audio firefox html5 getusermedia web-audio-api

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

Greasemonkey + jQuery:在事件回调中使用GM_setValue()

我试图在GreaseMonkey脚本中设置长期存储数据,但GM_setValue()似乎无声地失败:

$("a#linkid").click(function()
{
    GM_setValue("foo", 123); // doesn't work, but does not generate error
});

GM_setValue("bar", 123); // works properly, value is set
Run Code Online (Sandbox Code Playgroud)

jquery events storage greasemonkey callback

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

Safari for iPad:如何隐藏键盘上方的自动填充栏?

我正在编写一个使用包含<input>标签的UIWebView的iPad应用程序.在应用程序的上下文中使用自动填充功能没有意义,但在编辑字段时,键盘上方会出现一个条带,显示"自动填充"和"上一个/下一个".

有没有办法标记/样式<input>以便不显示此栏?添加autocomplete ="off"不会这样做.除此之外,有没有办法绕过Safari的键盘,并调用iOS API来处理文本输入?谢谢!

keyboard autofill mobile-safari ipad ios

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

如何在Cordova/PhoneGap for Android上的WebView上设置背景图像?

我不只是在寻找API中的Splash Screen功能; 如果可能的话,我希望HTML内容使用透明背景,并依靠WebView提供背景图像.这样的事情可能吗?

除此之外,我是否至少可以在WebView上设置一个"渗透"到HTML内容的背景颜色?

android webview cordova

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

MySQL中各种日期/时间字段类型的优缺点是什么?

MySQL中的日期和时间可以存储为DATETIME,TIMESTAMP和INTEGER(自1970年1月1日起的秒数).每种产品的优点和缺点是什么,特别是在LAMP堆栈下开发时?

php mysql lamp datetime timestamp

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