Tag: 服务器

Nodejs服务器在几个小时后停止接受连接

我做了一个应用程序来控制同时login,在开始一切正常完美,但是几个小时后,我不能再连接到服务器,我的客户端返回给我以下错误: net :: ERR_CONNECTION_TIMED_OUT,并在服务器端没有发生任何错误,如正确运行…代码如下: 客户端: var socket; function connect(id) { socket = io.connect('http://IP:4200'); socket.on('connect', function (data) { socket.emit('join', id); }); socket.on('messages', function (data) { console.log('MSG: ' + data.toString()); switch (data.toString()) { case "kick": socket.close(); console.log("KICK!"); break; case "duplicate_entry": socket.close(); console.log("Another user connection!"); break; } }); } 服务器端: var express = require('express'); var app = express(); […]

在节点上加载一个负载

我们有一个C#Web API服务器和一个Node Express服务器。 我们从C#服务器发出数百个请求到节点服务器上的路由。 节点服务器上的路由确实需要大量工作,并且通常不会返回6-8秒。 同时做出数百个这样的请求似乎会导致节点服务器失败。 节点服务器输出中的错误包括socket hang up或ECONNRESET 。 从C#方面的错误说 由于目标机器主动拒绝,所以不能build立连接。 处理不可预知数量的请求后发生此错误,这导致我认为它只是重载服务器。 在C#端使用Thread.Sleep(500)可以让我们获得更多的请求,并且在等待时摆弄或多或less的成功,但是线程hibernate很less有正确的答案,我认为这种情况是没有例外。 我们是不是把太多的压力放在Node服务器上? 这只能通过负载均衡或某种forms的集群来解决吗? 如果还有其他的select,它会是什么样子? 我开始探索的一条path是node-toobusy模块。 如果我返回503,下面的代码应该是什么过程? 我应该Thread.Sleep ,然后重新提交请求?

NodeJS和socket.io消息调度最佳实践

我们正在用NodeJS和websockets编写多人游戏。 在devise服务器的架构时,我们提出了处理大多数自己的通信的对象的想法。 关于连接的第一个例子,我们将把套接字传递给客户端对象,客户端对象然后可以自己处理通信。 其中一个好处就是不必拥有一个全局处理程序来传递消息。 这使责任分开。 然后,我可以通过向客户发送房间ID来告诉客户自己通过socket.iofunctionjoin特定房间。 我们可以看到的主要缺点是可能会出现我们需要复制套接字。 即:如果客户从房间断开并想要join另一个房间。 所以另一种select是采用更经典的方式,全局处理所有的消息,然后把关联的id路由到相关的对象。 你们会build议一个解决scheme,为什么?

节点http服务器4 x更快保持活动禁用?

保持活力应该加快网站。 但是,当我在铬(本地主机:8080)运行这个死了简单的服务器,我得到这些加载时间: 大约100毫秒与“连接:closures”标题(即与setHeader行未注释) 大约400毫秒,启用标准保持活动状态 。 我究竟做错了什么 ? 任何人都可以重现我的结果吗? 在过去的两天里,我一直在b my我的脑袋。 var fs = require('fs') // preparing 50 2k files … var a = [], txt = '/*\n' + 'x'.repeat(2000) + '\n*/' for (var i = 0; i < 50; i++) { var name = '/test' + i + '.js' fs.writeFile(__dirname + name, txt) a.push('<script src="' […]

如何在node js中使用request.render

我使用GET和POST方法从服务器获取数据,并使用request.send(object);获取响应request.send(object); 。 但是我的需求改变了,我需要使用request.render('pageName',object); 但render方法刷新我的页面,但我只想刷新一个特定的<div>节。 我读了这个链接https://www.npmjs.com/package/ejs,但我不能刷新只有特定的部分,而不刷新整个页面。

是否可以在Firefox扩展中embedded一个node.js服务器?

首先,我想发表一个关于这个问题的评论,但我没有足够的声望…所以我开始一个新的线程。 我的问题听起来很奇怪,但我真的想embedded和节点服务器内的Firefox扩展。 我知道这是一个旧的项目,但据我了解,它很快就会被弃用的XPCOM API,所以这是一个没有办法开始一个新的项目。 我阅读本地消息,但它不允许embedded可执行文件,所以它是没有用的。 浏览器扩展的目的是简化安装过程。 因此,如果我们不能embedded二进制文件,浏览器端的开发人员可以使用node.js API吗? 看来,答案是没有:(。 有人能给我一点希望吗?

托pipeReact / Redux / Node.js Web应用程序

我已经用React / Redux / Nodejs编写了一个简单的Web应用程序,它可以在我的系统上运行。 如果我想把整个事情放到networking服务器上,我现在需要注意什么? 是否有任何要求,或者我可以从标准的托pipe服务之一抓取一个标准的包,我很好走?

如何从API响应中parsingJPEG并发送到Node.js / Express的前端

我正在使用Google的Street View Image API来获取一个jpeg,然后我想通过Node.js / Express后端的响应体传递给我的前端。 目前,我的getStreetView函数从Google API获得正确的响应。 然后,我将这个response.body (jpeg)传递给我自己的请求处理程序。 但是,当我向该处理程序发出请求时,尽pipe请求已成功,并且包含了我已经分配的包含'Content-Type': 'image/jpeg'标题'Content-Type': 'image/jpeg' ,但图像不显示。 图像数据存在,它只是不显示: 所以要重申 – Postman对API的请求显示图像。 当我的处理程序调用getStreetView ,该请求也正在工作。 但是,它传递给GET /city时,它收到的图像不知何故正在翻译中。 这是一个编码问题? 我只是发送图片url而不是图片本身,但url包含我的API密钥 – 我认为这可能会让我在客户端易受攻击。 任何帮助非常感谢! var getStreetView = function(newLat, newLong, callback) { var api_key = process.env.API_KEY; var url = 'https://maps.googleapis.com/maps/api/streetview?' + 'size=' + 400 + 'x' + 400 + '&location=' + newLat + […]

作为MQTT客户端处理的服务器可以处理多less条消息

我有一个物联网应用程序。 哪里用于沟通我正在使用mqtt协议。 我正在使用Emqttd( http://emqtt.io/ )作为mqtt经纪人。 现在,我所有的设备以及我的节点服务器都作为客户端连接到MQTT Broker。 每当设备需要更新它的状态时,它就会发布一个特定的主题,而我的节点服务器正在监听所有的主题。 但是,如果没有,我恐怕是这样。 的消息每秒增加,我的服务器将能够处理所有这些消息,并更新数据库中的状态? 有没有限制没有。 可以由客户端每秒处理的消息? 还是有更好的方法来更新我的设备到数据库的状态。

Socket.IO – 服务器不会在SSL下向客户端发送响应

我和socket.io以及NodeJS碰到了一个很大的问题。 我尝试通过HTTPS下的Socket.IO与NodeJS服务器通信,但是当服务器向客户端发送响应的时候,它什么都不做。 我已经检查过,但这不是证书错误! 密钥和证书是有效的。 但是,没有HTTPS,它完美的工作。 这是我的代码: var express = require('express'), fs = require('fs'); var config = JSON.parse(fs.readFileSync(__dirname + '/config.json', 'utf8')), options = config.options || {}; var PORT = options.port, SSL_PORT = options.ssl_port; var app = express(), server = require('http').createServer(app); io = require('socket.io').listen(server); server.listen(PORT, function() { startServer(io); }); if (options.ssl_key.length && options.ssl_cert.length) { var sslOpt = […]