我们需要使用TFTP协议将数据发送到用户的设备,TFTP协议是一种简单的类似FTP的协议,可以在UDP上运行.
由于我们无法使用javascript打开UDP套接字,因此我们一直使用我们的服务器作为代理,将数据发送到我们的服务器并打开从服务器到设备的UDP连接.这确实有缺点,我们的用户需要了解NAT并配置端口转发.
所以问题是,我们可以使用WebRTC打开直接UDP套接字来在浏览器和设备之间发送和接收吗?
http://www.webrtc.org/reference/webrtc-internals/vienetwork#TOC-SendUDPPacket建议我们可以通过套接字发送一些原始UDP数据(也就是说,如果可以通过javascript访问该层.我是不确定),但我看不到获取原始UDP响应的方法.
任何帮助非常感谢
我正在玩一个使用蓝鸟的承诺控制流程.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)
我应该如何将此转换为承诺?
我(几乎)成功地使用带有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) 我想创建一个带有一些登录用户的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应用程序.
那么,这是个好主意吗?不会有任何问题吗?特别是关于秘密密钥,我不确定他们是否会共享相同的会话.
通常,当我想检查对象的类型(无论是数组,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)
所以......我很困惑.
这是一个使用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)这是我的代码:
var string1= "Hello how are =you";
Run Code Online (Sandbox Code Playgroud)
我想在"="之后输入一个字符串,即只有整个字符串中的"你".假设该字符串将永远有一个"="字符,我想在jQuery的一个新的变量,字符后的所有字符串.
请帮帮我.
在我的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) 这是一个小故事.
曾几何时,一个小项目想要使用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)