阅读本文之后,有一个引人注目的引用:
BSON还可以快速编码和解码.例如,整数存储为32(或64)位整数,因此不需要对文本进行解析.对于小整数,这使用比JSON更多的空间,但解析起来要快得多.
从我正在阅读的内容来看,使用BSON的全部意义在于它对CPU的负担更少,编码/处理速度更快.
但是,我使用Node.js进行了一些测试,并使用原生的JSON方法将BSON从水中吹走.一些测试显示JSON快3到5倍.(当使用更多数据类型时,大约6到8个.)
基准代码:
var bson = require('bson');
var BSON = new bson.BSONPure.BSON();
var os = require('os');
console.log(" OS: " + os.type() + " " + os.release() + " (" + os.arch() + ")");
console.log("RAM: " + os.totalmem() / 1048576 + " MB (total), " + os.freemem() / 1048576 + " MB (free)");
console.log("CPU: " + os.cpus()[0].speed + " MHz " + os.cpus()[0].model);
for (var r = 1; r < 4; r++) { …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我希望限制连接客户端通过线路发送的消息的最大大小.由于Node.js中消息的理论最大值约为1.9 GB,因此,如果某些恶意客户端尝试发送超大数据包,我实际上从不希望我的应用程序分配大量内存.
如何限制传入的邮件大小,比如1024字节?
在我的游戏中,你可以点击橙色框(它应该代表一个怪物).单击后,绿色线将附加到字符div.例如,为了更好的解释:

这是我用来生成行的代码:
l = document.createElement('div');
l.innerHTML='<div id="oLineBar" style=" transform: rotate(' + RANDOM + 'deg);" class="fadeIn2"><div id="lineBar" class="lineBarCharacter"></div></div>';
character.appendChild(l);
Run Code Online (Sandbox Code Playgroud)
那个CSS就是:
.lineBarCharacter{
height: 321px;
width: 2px;
background: rgba(39, 182, 0, 0.46)
}
#oLineBar {
position: absolute;
top: 20px;
left: 37px;
opacity: 1;
transition: transform 1s linear;
transform-origin: top left;
transform-style: preserve-3D;
-webkit-transition: opacity 1s;
transition: opacity 1s;
-ms-transition-property: opacity, -ms-transform;
}
Run Code Online (Sandbox Code Playgroud)
现在,我在这里得到了橙色框getboundingClientRect:
ClientRect {height: 95, width: 88, left: 1250.5, bottom: 471, right: 1338.5…}bottom: 471height: 95left: 1250.5right: 1338.5top: 376width: 88
Run Code Online (Sandbox Code Playgroud)
如何根据橙色框所在的位置(来自getboundingClientRect数据)确定正确的旋转度? …
我有一个大于100 KB的gameserver.js文件.每次刷新浏览器后我都会检查我的任务管理器,并且每次刷新时都会看到我的node.exe内存使用率不断上升.我在ws这里使用这个模块:https://github.com/websockets/ws并想通了,你知道吗,我的代码中很可能有一些内存泄漏...
因此,要仔细检查并隔离问题,我创建了一个test.js文件并放入默认ws代码块:
var WebSocketServer = require('ws').Server
, wss = new WebSocketServer({ port: 9300 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
});
Run Code Online (Sandbox Code Playgroud)
并启动它:

现在,我检查node.exe内存使用情况:

令我困惑的增量部分是:
如果我刷新我的浏览器连接到这个端口9300websocket服务器,然后回头看我的任务管理器..它显示:

现在是:14,500 K.
并且它在每次刷新时都会不断上升,所以从理论上讲,如果我保持清醒它将会通过屋顶.这是有意的吗?ws可能在某个地方的模块中是否存在内存泄漏?我问的全部原因是因为我认为可能在几分钟内或当用户关闭浏览器时它将返回,但事实并非如此.
我想要做这个测试的核心原因是因为我认为我的个人代码中存在内存泄漏问题并且只是想检查它是不是我,反之亦然.现在我很难过.
我设置了一个示例jsfiddle,用适当的资产来说明这一点.
当你的角色移动并且相机开始平移时,你会注意到背景有一个小的"抖动".可以通过设置game.camera.roundPx为true 来禁用此功能.
但是,如果禁用它并移动角色.你的角色开始抖动.我在这次冒险中发现的一些事情:
这种情况只发生body.velocity.x在两者P2和Arcade物理学家之间.
如果你移动角色body.x或者只是x它绝对没问题.
如果你移除了瓷砖贴图纹理,你可以从字面上看到在移动时发生的抖动.示例此处 - 确保您移动足够远以使相机平移.
我也尝试game.renderer.renderSession.roundPixels = false;过没有优势.
这在CANVAS和WEBGL渲染模式下发生
我如何使用Node.js与https://github.com/websockets/ws.
我正在尝试将用户remoteAddress存储在临时套接字变量中.我可以通过以下方式访问此变量
socket.upgradeReq.connection.remoteAddress
问题是,世界上remoteAddress的来源是什么?甚至在lib目录中的任何WS node_plugin文件中都找不到变量'remoteAddress'.(我使用Notepad ++搜索每个文件.)
我找到访问此变量的唯一原因来自于此主题:如何使用node.js中的websocket(einaros/ws)lib获取客户端IP地址?
哎呀,即使console.log(self.upgradeReq.connection);在我的控制台显示我仍然找不到它!
对象控制台列表的图像:


在世界的哪个地方?我错过了什么吗?
这是一个快速的jsfiddle,我提出了一个更好的例子我的问题.
function gi(id){return document.getElementById(id)}
a= [1,5,1,2,3,5,3,4,3,4,3,1,3,6,7,752,23]
for(i=0; i < a.length; i++){
/*
if (WHAT AND WHAT){ What do I add here to know that the last value in the array was used? (For this example, it's the number: 23. Without doing IF==23.
}
*/
gi('test').innerHTML+=''+a[i]+' <br>';
}
Run Code Online (Sandbox Code Playgroud)
(该代码也可在https://jsfiddle.net/qffpcxze/1/获得)
所以,该数组中的最后一个值是23,但是我怎么知道最后一个值是循环内部循环的呢?(如果IF X == 23有意义的话,不检查简单但动态).
我在删除数组中的对象时偶然发现了这一点.
这是代码:
friends = [];
friends.push(
{
a: 'Nexus',
b: 'Muffin'
},
{
a: 'Turkey',
b: 'MonkMyster'
}
)
console.log(friends);
for(i in friends){
if(friends[i].a == 'Nexus'){
delete friends[i];
friends.push({
a: 'test',
b: 'data'
});
}
}
console.log(friends);
Run Code Online (Sandbox Code Playgroud)
它也发布在jsfiddle上.
基本上,为什么我的第console.log一个friends输出:
[Object, Object]
但是,当在循环中删除该对象然后向该数组添加新对象时,它会记录:
[1: Object, 2: Object]
究竟是什么1:, 2:意思(显然是关联每个对象),但我想知道为什么它在第一次登录后不存在friends?我的朋友阵列中的对象符号是错误的吗?我觉得我正在创建friends错误的初始数组并且JavaScript解析器正在纠正我?
问题1:与此处说明的默认进程间通信相比,用于向子进程发送消息的区别到底是什么?ZeroMQ
问题2:对于直接进行儿童沟通的过程,哪个更合适?(更快)
问题3:文档说:Creates an IPC channel,它使用什么类型IPC?TCP?插座?
经过搜索,我找到了这个主题,但这就是如何通过用户界面启用/显示仪表。我想知道是否可以通过启用/禁用仪表JavaScript?