小编Flo*_*ine的帖子

我可以使用WebRTC打开UDP连接吗?

我们需要使用TFTP协议将数据发送到用户的设备,TFTP协议是一种简单的类似FTP的协议,可以在UDP上运行.

由于我们无法使用javascript打开UDP套接字,因此我们一直使用我们的服务器作为代理,将数据发送到我们的服务器并打开从服务器到设备的UDP连接.这确实有缺点,我们的用户需要了解NAT并配置端口转发.

所以问题是,我们可以使用WebRTC打开直接UDP套接字来在浏览器和设备之间发送和接收吗?

http://www.webrtc.org/reference/webrtc-internals/vienetwork#TOC-SendUDPPacket建议我们可以通过套接字发送一些原始UDP数据(也就是说,如果可以通过javascript访问该层.我是不确定),但我看不到获取原始UDP响应的方法.

任何帮助非常感谢

javascript udp webrtc

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

承诺和不规则的回调

我正在玩一个使用蓝鸟的承诺控制流程.Bluebird提供了一个.promisify()方法,用于将常规回调函数转换为promise函数,但我不清楚当函数不规则时我应该做什么.例如,requestjs请求的方法签名是

request(url, callback)
Run Code Online (Sandbox Code Playgroud)

回调的地方

err, res, body
Run Code Online (Sandbox Code Playgroud)

而不是常规

err, res
Run Code Online (Sandbox Code Playgroud)

我应该如何将此转换为承诺?

javascript control-flow node.js bluebird

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

Node.js - 会话不会通过res.redirect()持久存在

我(几乎)成功地使用带有Express和Redis的Node.js来处理会话.

我遇到的问题是我使用时不保留会话res.redirect().

这是我如何看到它:

req.session.username = username.toString();
console.log(req.session);
res.redirect('/home');
Run Code Online (Sandbox Code Playgroud)

console.log()打印:

{ lastAccess: 1322579131762,
  cookie:
   { path: '/',
     httpOnly: true,
     _expires: Tue, 29 Nov 2011 15:06:31 GMT,
     originalMaxAge: 60000 },
  username: 'admin' }
Run Code Online (Sandbox Code Playgroud)

现在,这是以下代码:

app.get('/home', [app.requireLogin], function(req, res, next) {
// Not showing the rest as it's not even getting there
// Instead, here is what's interesting
app.requireLogin = function(req, res, next) {
  console.log(req.session);
Run Code Online (Sandbox Code Playgroud)

这个console.log()打印出来:

{ lastAccess: 1322579131775,
  cookie:
   { path: '/',
     httpOnly: true,
     _expires: Tue, 29 Nov 2011 15:06:31 …
Run Code Online (Sandbox Code Playgroud)

redis node.js express

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

是否在Node.js的服务器上提供了URL的哈希?

今天,我依赖于这个链接:Node API的'url'文档.

我看到该hash部分包含在文档中.但是,是不是这部分没有可用的服务器上?这就是我一直以为的.

任何解释?我弄错了什么?

node.js

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

在Redis上为Django和Express.js应用程序共享会话存储

我想创建一个带有一些登录用户的Django应用程序.另一方面,由于我需要一些实时功能,我想使用Express.js应用程序.

现在,问题是,我不希望未经验证的用户访问Express.js应用程序的数据.所以我必须在Express.js和Django应用程序之间共享一个会话存储.

我认为使用Redis会是一个好主意,因为易失性键非常适合这种情况,我已经将Redis用于应用程序的另一部分.

在Express.js应用程序上,我有这样的代码:

[...]
this.sessionStore = new RedisStore;
this.use(express.session({
  // Private crypting key
  secret: 'keyboard cat', // I'm worried about this for session sharing
  store: this.sessionStore,
  cookie: {
    maxAge: 1800000
  }
}))
[...]
Run Code Online (Sandbox Code Playgroud)

在Django方面,我想到使用django-redis-session应用程序.

那么,这是个好主意吗?不会有任何问题吗?特别是关于秘密密钥,我不确定他们是否会共享相同的会话.

python django redis node.js express

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

为什么不``} .toString.apply(array)`工作?

通常,当我想检查对象的类型(无论是数组,NodeList还是其他)时,我使用以下内容:

var arr = [] // I don't do this, but it's for the sake of the example
var obj = {}
obj.toString.apply(arr) // This works
Run Code Online (Sandbox Code Playgroud)

问题是:为什么我不能做以下事情?

var arr = []
{}.toString.apply(arr) // Syntax error: Unexpected token .
Run Code Online (Sandbox Code Playgroud)

我没有得到语法错误的位置.

我可以做一些接近[]但是,以下工作:

var nodeList = document.getElementsByClassName('foo')
[].forEach.call(nodeList, function(bar) { console.log(bar) }) // Works
Run Code Online (Sandbox Code Playgroud)

所以......我很困惑.

javascript

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

为什么使用jQuery返回false停止传播而不使用POJS?

这是一个使用POJS的jsfiddle显示return false;不会阻止事件的传播:http://jsfiddle.net/Ralt/Lz2Pw/

这是另一个使用jQuery显示return false; 确实停止事件的传播:http://jsfiddle.net/Ralt/D5Mtg/

编辑:向我解释为什么jQuery这样做 - 有意地与原始行为不同 - (以及代码中的位置)得到答案.

这是代码(很长,但很容易阅读):

  • 两个版本的HTML:

    <div id="parent1">
        <div id="child1"><a href="#" id="a1">child1</a></div>
    </div>
    
    <div id="parent2">
        <div id="child2"><a href="#" id="a2">child2</a></div>
    </div>
    
    <div id="parent3">
        <div id="child3"><a href="#" id="a3">child3</a></div>
    </div>
    
    Run Code Online (Sandbox Code Playgroud)
  • POJS:

    document.getElementById( 'child1' ).onclick = function( e ) {
        console.log( 'child1' );
        e.preventDefault();
    };
    
    document.getElementById( 'parent1' ).onclick = function( e ) {
        console.log( 'parent1' );
    };
    
    document.getElementById( 'child2' ).onclick = function( e ) {
        console.log( 'child2' …
    Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

如何在jquery中的特定字符之后拆分字符串

这是我的代码:

var string1= "Hello how are =you";
Run Code Online (Sandbox Code Playgroud)

我想在"="之后输入一个字符串,即只有整个字符串中的"你".假设该字符串将永远有一个"="字符,我想在jQuery的一个新的变量,字符后的所有字符串.

请帮帮我.

javascript

6
推荐指数
4
解决办法
2万
查看次数

Jni参考表溢出

在我的Android应用程序中,我广泛使用返回一些数据的本机方法.

然而,经过多次通话,我获得了崩溃.

本机调用方法是:

static jbyteArray JNIGetIcon(JNIEnv* e, jclass clazz)
{
    ByteBuffer buff;
    buff.Write(*icon, 48, 32, r66Api::IBitmap::TEncoding::EEnc_Rgba8888);

    jbyteArray result = GetEnv()->NewByteArray(buff.Size());
    GetEnv()->SetByteArrayRegion(result, 0, buff.Size(), (jbyte*)  buff.GetData());

    return result;     
}
Run Code Online (Sandbox Code Playgroud)

有人能指出我做错了吗?

崩溃日志是:

02-10 18:33:32.075 W/dalvikvm(10644*10644): ReferenceTable overflow (max=1024)
02-10 18:33:32.075 W/dalvikvm(10644*10644): Last 10 entries in JNI pinned array reference table:
02-10 18:33:32.075 W/dalvikvm(10644*10644): 1014: 0x2fc77de0 cls=[C (28 bytes)
02-10 18:33:32.075 W/dalvikvm(10644*10644): 1015: 0x2fc79b88 cls=[C (28 bytes)
02-10 18:33:32.075 W/dalvikvm(10644*10644): 1016: 0x2fc79c38 cls=[C (28 bytes)
02-10 18:33:32.085 W/dalvikvm(10644*10644): 1017: 0x2fc79ef8 cls=[C (28 bytes) …
Run Code Online (Sandbox Code Playgroud)

c++ java-native-interface android

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

node-mongodb-native,callback,scope和TypeError

这是一个小故事.

曾几何时,一个小项目想要使用node-mongodb-native.但是,它非常害羞,它想要使用包装器对象隐藏它.

var mongodb = require( 'mongodb' ),
    Server = mongodb.Server,
    Db = mongodb.Db,
    database;

var MongoModule = {};

MongoModule.setup = function() {
    // Create a mongodb client object
    var client = new Db( this.config.databaseName,
        new Server(
            this.config.serverConfig.address,
            this.config.serverConfig.port,
            this.config.serverConfig.options
        ),
        this.config.options
    );

    // Open the connection!
    client.open( function( err, db ) {
        if ( err ) throw err;
        database = db;
        console.log( 'Database driver loaded.' );
    });
};
Run Code Online (Sandbox Code Playgroud)

setup方法是一种启动小项目的方法.它在应用程序运行时被调用.

为了尝试自己,小项目为collection方法添加了一个包装方法node-mongodb-native.

MongoModule.collection …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js node-mongodb-native

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