我对node.js非常陌生(通常是服务器问题的初学者)。 我设法运行我的node.js应用程序,并把它放到我的虚拟服务器上(Linux 8.0)。 问题是node.js打开了很多TCP套接字。 一段时间后,允许的套接字数量被耗尽,服务器崩溃。 我目前必须手动停止并重新启动节点进程来防止这种情况。 重新启动将重置TCP套接字。 我需要为这个问题find一个解决scheme,因为手动重新启动不是一个长期的解决scheme,特别是如果访问者数量增加,我可能需要每12小时重新启动它(这是不实际的)。 我可能在编码上做错了什么,但是我现在还不知道我可以优化什么。 我很高兴,它甚至有效。 哪部分代码正在创build所有这些TCP连接? 我该如何解决这个问题? 我的节点文件/应用程序执行以下操作: 发送/发送消息到开放和/或私人聊天。 发送/发出游戏邀请(游戏types不重要) 如果邀请接受邀请,“客户”都发送到同一个房间,游戏开始 nodeServer.js var socket = require( 'socket.io' ); var express = require( 'express' ); var http = require( 'http' ); var app = express(); var server = http.createServer( app ); var io = socket.listen( server ); // handle incoming connections […]
我想设置lessc (从节点)为了使用这个eclipse插件 。 由于我在公司代理和/或防火墙后面(不知道确切的设置),我无法通过npm install -g less来直接安装,所以我手动从这里下载了最新版本,解压zip,做了npm install -g <extracted-folder> ,这似乎工作。 但是,在导航到具有.less文件的目录并执行lessc myfile.less ,该命令将自动完成,并且不会生成输出文件。 我试过手动指定输出文件并设置–verbose标志,但是在命令行上还是没有输出,也没有任何文件。 这里发生了什么,我该如何继续debugging这个问题呢? 解决方法 如果任何人面临同样的问题,这里是我目前正在使用的替代scheme: 考拉是一个独立的应用程序编译LESS(除其他外),并有能力后立即改变,所以我一直在运行后台并在Eclipse中编辑我的less文件,这会在每次保存操作时自动重新编译。
我正在运行这些命令 npm install karma karma-jasmine karma-phantomjs-launcher phantomjs@2.1.7 jasmine-core –save-dev karma start 在我的Linux CentOs 7.2机器上,并得到这个错误: bower_components/angular/angular.js:4641:53 forEach@bower_components/angular/angular.js:321:24 loadModules@bower_components/angular/angular.js:4601:12 createInjector@bower_components/angular/angular.js:4523:30 workFn@vendor/angular-mocks.js:2427:60 TypeError: undefined is not an object (evaluating '$rootScope.$new') in my-components/my-specific-component/spec/mySpecificController.spec.js (line 84) createController@my-components/my-specific-component/spec/mySpecificController.spec.js:84:37 my-components/my-specific-component/spec/mySpecificController.spec.js:92:42 (…10 more tests failing in the same spec…) PhantomJS 2.1.1 (Linux 0.0.0): Executed 54 of 54 (11 FAILED) (0.349 secs / 1.251 […]
为了自动运行和debuggingnode.js应用程序,debuggingURL需要从脚本打开; 例如。: chromium "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9230/9229"& 如果我复制粘贴URL在铬工作正常。 然而正如我所说的这一步需要自动化。 如何从脚本或命令行(Linux)在铬/谷歌chrome-devtools://devtools/bundled/inspector.html中打开chrome-devtools://devtools/bundled/inspector.html表单的URL?
设置: 在m3.xlargetypes的EC2上安装2台机器。 第一个与Ubuntu服务器。 第二个win2008r2。 在Ubuntu的node.js使用基本的例子来返回任何请求的string响应。 asp.net httphandler返回相同的响应。 使用https://github.com/newsapps/beeswithmachineguns我用10台机器执行200000的并发2000(每台机器200)我跑了基准,得到: 的NodeJS: Complete requests: 200000 Requests per second: 5605.170000 [#/sec] (mean) Time per request: 358.071900 [ms] (mean) 50% response time: 31.000000 [ms] (mean) 90% response time: 239.300000 [ms] (mean) IIS: Complete requests: 200000 Requests per second: 9263.810000 [#/sec] (mean) Time per request: 215.992900 [ms] (mean) 50% response time: […]
我有一个无头的Debian ARM机器,我正在运行节点。 该设备具有使用gpio-keys映射到普通键盘事件的硬button。 我的目标是从硬button以及Node中任何连接的键盘捕捉全局事件。 我需要一个解决scheme,它可以捕获keydown / keyup事件独立于它所运行的terminal(它将通过SSH会话运行)。 它不一定是跨平台的,只要它在ARM Debian上运行,我会接受它。 我想象的是直接读取任何sysfs属性是必要的,但这不是必需的。 谁可以帮我这个事? 我被困了一段时间。
我有我的socket.io服务器在后台运行。 但是,有几种情况死亡。 我能做些什么来使我的socket.io服务器自动重新启动,无论它死或终止。 这是我开始我的节点服务器 > node server & 然而服务器抛出一个exception并死亡。 events.js:141 throw er; // Unhandled 'error' event ^ Error: Redis connection to pub-redis-us-east1-garantiabata.com:12087 failed – connect ETIMEDOUT 54.179.28.165:12087 at RedisClient.on_error (/home/org-chatserver/node_modules/redis/index.js:185:24) at Socket.<anonymous> (/home/org-chatserver/node_modules/redis/index.js:95:14) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at emitErrorNT (net.js:1253:8) at doNTCallback2 (node.js:450:9) at process._tickCallback (node.js:364:17) ^C 这是我的环境 Linux version 2.6.32-042stab090.5 (root@kbuild-rh6-x64) (gcc […]
https://nodejs.org/api/fs.html#fs_caveats指出fs.watch(filename[, options][, listener])的recursion选项只适用于OS X和Windows。 那么,怎么能在Linux上实现呢?
我需要debugging我的nodejs进程的100%CPU使用率。 我发现node –prof myapp.js是非常有帮助的。 现在我有另一个应用程序将forksubprocess,我需要debugging该subprocess。 这是我如何分手的过程。 require('child_process').fork("childfile.js", ["arg1","arg2], {silent: true}); 现在我的问题是,是否有可能configurationsubprocess,那么我怎么能通过“–prof”选项。
我到处寻找答案,但没有任何运气。 我在我的服务器上安装了node.js。 我创build了标准的“Hello World”示例,如下所示: var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8080, "0.0.0.0"); console.log('Server running at http://0.0.0.0:8080/'); 在服务器上运行脚本之后: node app.js 我可以连接内部端口808,看到Hello World消息,但是当我尝试连接到端口8080我的服务器外部我得到一个“无法连接到服务器”的错误。 我也试过这个在我的听function: etc.. }).listen(8080, "204.xxx.xxx.xxx"); (用我真实的外部IP地址),并没有任何运气。 我试图通过添加到iptables接受8080上的连接: iptables -A INPUT -p tcp –dport 8080 -j ACCEPT 但仍然撞墙。 当我运行netstat时,我得到: tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN – tcp 0 0 […]