Tag: networking抓取

Node.js + Socket.io,build立的连接正在增加

我的node.js + socket.io服务器通过aws ec2实例进行部署。 并有一些networking调整configuration。 echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time echo 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl echo 3 > /proc/sys/net/ipv4/tcp_keepalive_probes echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout echo 20000 > /proc/sys/net/core/netdev_max_backlog echo 2048 > /proc/sys/net/core/somaxconn echo 0 > /proc/sys/net/ipv4/tcp_tw_reuse 我用netstat命令监视连接状态。 netstat -anl | grep ":22000" | awk '/^tcp/ {t[$NF]++}END{for(state in t){print state, t[state]} }' 那么,发现“ESTABLISHED”的关系正在稳步增长。 TIME_WAIT […]

如何使用节点聊天服务器的单个瞬间作为使用该应用程序的不同组织的mutitenant?

我已经为客户服务支持做了一个节点应用程序。 我想讨论下面的情景: 假设多个组织订阅我的客户支持服务(聊天服务)。 现在所有的客户我想使用相同的后端。 目前对于单个组织来说,应用程序正在工作。 假设一个客户来到网站abc.com,那么abc.com的代理能够服务通过节点应用传递给他们的聊天。 我给他们脚本像 <script type = 'text/javascript' src = 'http://chatting.com/?initialScript?organisation=abc' 通过它与他人“聊天”div被包括在他们的网站中,并且所有聊天stream量都stream向chatting.com(假设名称),而与abc.com无关。 chatting.com通过存储在浏览器中的cookie(第三方cookie)跟踪用户。 下一次,chatting.com发出的任何命令都会将该cookie与请求一起发送。 但是,当我想使这个应用程序多租户时,真正的问题来了。 现在假设abc.com和def.com订阅了我的应用程序。 并且用户在不同的选项卡中并排打开浏览器中的两个站点。 现在,由于我的应用程序将chatting.com cookies作为第三方cookie保存,因此abc.com和def.com“与我们聊天”选项将在浏览器中使用与chatting.com相同的cookie。 但是,这将导致冲突,因为两个客户的cookie数据是相同的。 在后端服务器将把这两个客户视为相同,因为他们与cookie的区别和cookie是相同的情况下。 所以这会导致问题。 现在我想到了一个解决scheme。 我使用快递作为后端Web服务器。 我将覆盖每个http响应中发送cookie的默认行为。 但会发送Cookie文件(一个用于“聊天我们”的div),它将使用document.cookie javascript函数在客户端写入cookie。 因此,我的应用程序cookies将成为第一方cookie。 因此,下一次请求发送到chatting.com,那么我将通过使用相同的document.cookie从abc.com的域中读取该cookie,因此cookie不会发生冲突。 但即时通讯find这个解决scheme。 如果有人有任何想法如何实现我的目标,我会感激。 提前致谢

在谷歌计算引擎连接MongoDB与mongoose错误

我正在关注书架应用程序教程 。 我能够部署应用程序,并让我的服务器运行,并将其连接到我的MongoDB实例。 一切工作正常。 当我尝试部署我自己的应用程序时,我遵循了所有步骤,我能够将我的代码存入云存储库。 我启动了一个linux debian虚拟机,并提供了我在教程中find的启动脚本,但是当我去了地址 http://<your-instance-ip>:8080 我不能连接到我的应用程序。 我SSHd到我的实例,并能够导航到我的文件被保存的目录,我手动input命令 node app.js 我马上就得到了我的应用程序在8080端口上运行的控制台日志。但10分钟后,我得到一个错误,我的应用程序无法连接到mongodb实例。 我使用mongoose来连接到mongodb,而在他们的教程中,他们使用MongoClient。 这是我的代码: mongoose.connect('mongodb://***.***.***.***:27017/myappdatabase'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function(callback) { console.log("connected to mongodb…"); }); 这里是教程代码: MongoClient.connect(url, function(err, db) { if (err) { console.log(err); return cb(err); } collection = db.collection(collectionName); cb(null, collection); }); 在哪里URL是完全相同的URL在MONGOOSE.CONNECT(); 我很确定这是唯一的问题。 当虚拟机启动时,它执行我的app.js文件,当它不能连接到MongoDB时,我的服务器崩溃。

刮刀不使用cheerio jquery返回任何值

试图刮去一个网站的头版( www.ozbargain.com ),以返回标签中的任何内容,其中包含对xbox的引用,但是没有任何内容被返回到控制台。 我相信这个问题是与if语句:包含。 var fs = require('fs'), request = require('request'), cheerio = require('cheerio'); url = 'http://www.ozbargain.com.au'; request(url, function(error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); if($("a:contains('Xbox')").length) { //console.log(this); var el = $(this); var log = el.text(); console.log(log); } else { console.log('hey'); } } }); 我之后的html块。 特别是,我想要一个标签; <h2 […]

是否有一个nodejs /系统带宽限制处理通过套接字的许多GET请求?

我有一个节点js脚本运行,通过套接字泵(服务器响应许多小的HTTP请求),由于某种原因带宽被限制为1MB /秒(有时小于1MB / s,但从来没有更快)。 我有一个这样的系统设置或需要调整的nodejsconfiguration参数? 我在不同的机器上有这个问题(内存越来越less)localhost – localhost和external – localhost,来自tcptrack的屏幕截图: 1MB / s限制

用nightmarejs点击图像

在这个问题上我一直在挣扎几天。 我正在使用nightmarejs在ebay产品列表页面上点击图片。 单击时,图像的全尺寸版本将出现在Lightbox中。 Nightmarejs只是不会点击这个图像! 我可以点击其他链接,但图像永远不会被点击,所以没有灯箱popup。 这是我想要点击的图像: URL: http : //www.ebay.com/itm/Newton-Distance-S-III-Lime-Red-Running-Shoes-Mens-M-New-155/311559183260?hash= item488a5fdb9c& _trkparms=5374%3AFeatured%7C5373% 3A0 这是我的代码: var Nightmare = require('nightmare'); var selector1 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg'; var selector2 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr'; var selector3 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr img#icImg'; var selector4 = '#PicturePanel div.pp-ic.pp-ic500 table tbody […]

如何解决,如果EAI_AGAIN错误发生在Facebook Messenger平台上?

我们的facebook messenger平台的Node.js应用程序抛出以下错误。 我们使用“请求”模块连接到facebookgraphicsapi和模块抛出这个错误。 在发现问题后的一个小时内,问题解决了,但没有做任何事情。 所以现在工作,但恐怕什么时候会再次发生。 你能教我这个问题,如果有任何解决scheme? { Error: getaddrinfo EAI_AGAIN graph.facebook.com:443 at Object.exports._errnoException (util.js:949:11) at errnoException (dns.js:33:15) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26) code: 'EAI_AGAIN', errno: 'EAI_AGAIN', syscall: 'getaddrinfo', hostname: 'graph.facebook.com', host: 'graph.facebook.com', port: 443 }

Nodejs没有发送syn请求到服务器,错误EHOSTUNREACH

我在nodejs中写了一个简短的程序,它应该将数据发送到服务器。 不幸的是,这个程序失败。 然而有趣的是,我使用wireshark来查看请求正在做什么,而且我没有看到与我所做的请求一样多的TCP SYN数据包。 该程序包含在这里。 //ServerTestv1.js var request = require('request'); var grouper = require('./grouper'); //Placeholder program. function sendSomething(obj){ request.post(obj, function(error, response, body){ if(response == undefined){ //This happens sometimes. I 'unno why. reject(error); console.log('Undefined POST Response, ' + error); } else if(response.statusCode != 201 || error){ reject(error); console.log(error + response.statusCode + " " + response.body); } […]

将Unity游戏连接到数字海洋Node.js服务器

开始按照我的统一游戏的networking教程(以前没做过)。 这是迄今为止创build的一些非常简单的脚本,可以连接到。 这是我有: var io = require("socket.io")(process.env.port || 3000); console.log("Server Started"); io.on("connection", function (socket) { console.log("Client Connected"); }); 在Unity中,我有一个带有Socket IO Component(来自商店资产)的gameobject。 从CMD,我运行本地版本的server.js(上面的代码),并看到“服务器启动”出现。 在Unity中,GameObject的URL设置为:ws://127.0.0.1:3000 / socket.io /?EIO = 4&transport = websocket,当我玩Unity的时候,它连接起来。 这是显示在“客户端连接”出现在CMD窗口中。 本教程没有涉及到如何部署这样的东西,所以我只是确保在继续之前它肯定会工作。 我用Node.js打开了一个数字海洋液滴。 我导航到srv / www,并安装express以及socket.io,就像我在本地做的那样。 我上传(通过FTP)server.js的位置,并运行它。 我看到“服务器启动”出现。 当我统一更改URL中的IP地址时,维护端口及其后的所有内容,然后按播放,它不会出现连接。 我从来没有看到任何“客户端连接”消息。 这感觉就像是最后的障碍,但我无法解决它。 我把东西放在错误的目录中吗? 我在做什么错,为什么不能连接?

如何在20亿个IP地址上实现IP过滤?

我们有不同的项目,其中之一就是白标签DSP解决scheme 。 我们的客户端请求启用IP过滤所有传入stream量。 他们给了我们地址列表,其中包含20.5亿条logging,它应该实时工作。 这些地址可以压缩成600万个范围。 我们只有10毫秒来进行这个检查。 这个任务应该使用NodeJS来实现。 你有什么build议如何完成这个任务,或者哪个机制适合这个任务?