Tag: tcp

无法连接到CloudFoundry上的TCP服务器(localhost node.js工作正常)

我无法连接到在CloudFoundry上运行的TCP服务器示例。 当在本地node.js安装上运行我的app.js文件时,它工作得很好。 具体来说,当我使用vmc push运行CloudFoundry时,服务启动并不会崩溃。 一些IP连接到它,断开连接,据我所知,服务继续运行。 我只是无法使用“telnet”和“nc”连接到它(注意这两个工作正常时指向本地主机node.js服务器。 这失败了: > nc themagicsandbox2.cloudfoundry.com 8124 这工作 > nc localhost 8124 hello from TCP server! (intended reply) 我的代码在这里提交,Cloud Foundry stdout.log在下面提交。 码: myTrace('loaded'); // myTrace prepends timestamp to text and sends to console.log var tcpServer = require('net').createServer(function(sock) { //'connection' listener sock.on('connect', function() { myTrace('client ' + sock.remoteAddress + ':' + sock.remotePort […]

数据在erlang和nodejs之间通过tcp传递

我需要通过tcp在nodejs和erlang之间传递数据。 Erlang进程是一种从nodejs进程接收数据并进行一些处理的api服务器。 我想使用json作为数据结构,并使用ejson来编码/解码消息。 然而,在基准testing中,我发现解码速度非常慢。 大约20k msg / sec。 有没有更好或更快的方式通过TCP发送数据到erlang。 有没有办法让我可以在erlang中跳过这个解码过程。 现在数据是这种types的: {“event”:“someevent”,“channel”:“某个频道”,} erlang会使用事件和通道来做一些基于它的处理。

TCP,UDP和使用单个Node.js服务器的串行通信

我们正在为需要通过串口和UDP进行通信的testing夹具开发控制器。 我的计划是使用Node.js来提供I / O通信集线器,如下图所示。 Node.js I / O集线器需要使用以下方式进行通信: UDP :每50毫秒接收两个UDP数据报,每50毫秒发送两个UDP数据报。 串行端口:将使用串行端口连接来读取和更新testing夹具的值。 TCP:一个基于Web的AngularJS用户界面,通过REST API与Node.js服务器进行通信,以便: 读取并更新通过串口和UDP数据报接收/发送的testing夹具值。 请求testing结果被保存到一个MongoDB实例。 MongoDB:为testinglogging提供持久存储。 问题 我可以使用Express并通过UDP和串口与Node.js进行通信吗? 这是通过串口,UDP和TCP进行通信的合理体系结构,尤其是考虑到每隔50毫秒发送两个UDP数据报的要求? 我接受build筑build议。

未知编码Node.js Net / TCP

我正在尝试使用node.js net发送消息 我不断收到一个错误事件的string: buffer.js:377 throw new TypeError('Unknown encoding: ' + encoding); ^ TypeError: Unknown encoding: foobarstringfoobarstringfoobarstringfoobarstring at Buffer.write (buffer.js:377:13) at new Buffer (buffer.js:215:28) at createWriteReq (net.js:675:33) at Socket._write (net.js:640:18) at doWrite (_stream_writable.js:219:10) at writeOrBuffer (_stream_writable.js:209:5) at Socket.Writable.write (_stream_writable.js:180:11) at Socket.write (net.js:613:40) at someModule.<anonymous> (/home/engine/private_js/N.cs.js:120:43) at someModule.EventEmitter.emit (events.js:95:17) 我必须JSON.stringify和JSON.parse ? 首先我net.createServer()… var net=require('net'); var server=net.createServer(function(push){ someModule.on('eventA',function(A,B,OBJ){ […]

在node.js的HTTP旁边的端口80上提供Flash策略请求

我想从Flash浏览器客户端提供套接字连接,因此我需要添加对策略请求文件协议的支持。 由于防火墙等原因,我无法在默认端口843上运行策略文件请求服务。我唯一的select是在端口80上服务器协议,在我的HTTP服务器旁边。 我的应用程序是在node.js中编写的,下面的代码工作: var httpServer = http.createServer(); net.createServer(function(socket){ httpServer.emit('connection', socket); }).listen(80); 我在端口80上打开一个套接字服务器,现在我只是在httpServer上发出连接事件,到目前为止没有问题。 现在我想检查一下新的套接字是否是一个策略文件请求,它只是通过TCP连接发送纯<policy-file-request />string<policy-file-request /> 。 当我注意到这个string,我知道它不是HTTP,我可以返回crossdomain文件并closures套接字。 所以我现在尝试的是这样的: net.createServer(function(socket){ socket.once('readable', function(){ var chunk = socket.read(1); // chunk[0] === 60 corresponds to the opening bracket '<' if(chunk !== null && chunk[0] === 60) { socket.end(crossdomain); } else { socket.unshift(chunk); httpServer.emit('connection', socket); } }); }).listen(80); 现在我检查第一个字节是否是左括号“<”,然后将跨域文件写入套接字。 否则,我将unshift块移到stream上,并在HTTP服务器上发送套接字作为连接。 […]

Socket.io 1.0.6,nodejs CPU超过100%

我正在创build一个Web服务器来pipe理对活动数据的订阅。 这些数据通过TCPstream式传输到nodejs,然后stream式传输到使用Socket.io通过websockets订阅特定主题的客户端。 这是工作stream程。 客户端发送特定主题的订阅请求。 Nodejs应用程序将代理这个订阅到Java应用程序,然后开始通过TCP将数据推送到nodejs。 Java应用程序为每个可以侦听的新闻types启动9个不同的套接字连接,每个套接字一个类别 值得一提的是,这个数据可能是非常巨大的,因为当客户端订阅他们第一次获得历史数据(高达45MB),并且每个后续的推送包含一个小的增量。 我所遇到的问题是在初始推送nodejs应用程序中使用了超过100%的CPU。 起初,我认为这个问题是parsing正在发送给我的数据。 经过几天的debugging,我发现当注释掉socket.emit(data.topic, data) CPU会下降到1%-3%。 这使我相信,我遇到的问题是与socket.io。 我在这里误用socket.io吗? 有什么替代scheme可以推动不同的主题/渠道? 我的代码有什么问题吗? 感谢您的时间! //needed for REST subscribe services var app = require('express')() //needed for HTTP server , server = require('http').createServer(app) //WebSocket library (TODO see how to implement this) //, sockjs = require('sockjs') //backend subscriptions , subUtil = require('./subscriptions/subscriptionManager') , bodyParser = […]

Node.js – Socket.io – 将请求与响应关联

我正在尝试通过使用Node.js中的networking包,通过TCP / IP与我的源测量单元进行通信。 没问题连接到仪器并运行查询。 不过,我试图得到一个请求和它的响应之间的联系。 例如,假设我想测量并从仪器中提取一些电stream。 我会喜欢 socket.on('data', function( data ) { console.log( data.toString( 'utf8' ) ); }); socket.write("print( smua.measure.i() );\r\n", 'utf8'); // This will directly print the response into the socket 哪个工作正常。 但是,无法知道输出是否来自特定的查询,因为它们都是asynchronous的。 我可以采用什么解决scheme? 在GPIB协议中(如果我得到了正确的答案)我查询仪器(或sockets…)的响应,这使得事情变得更容易,因为它都是顺序的。 但是,我怎么能在TCP中做到这一点? 提前致谢 !

Node.js TCP / IP服务器队列不工作

我正在写一个TCP / IP队列,应该限制最大连接用户数为3,并让其他人等到用户断开连接。 这些是我正在使用的function: var maxClients = 3; var currentClients = 0; var _pending = []; function process_pending() { if (_pending.length > 0) { var client = _pending.shift(); currentClients++; client(function() { currentClients–; process.nextTick(process_pending); }); } } function client_limit(client) { if (currentClients < maxClients) { currentClients++; client(function() { currentClients–; process.nextTick(process_pending); }); } else { console.log('Overloaded, queuing […]

如何解决Node.js进程中的ESOCKETTIMEDOUT / ECONNRESET错误

这是一个相当复杂的情况,所以我只是描述一下大局。 我们已经有几个星期了错误,所以任何想法,将不胜感激。 我们有四个networking跳跃: client (Node.js) | AWS ELB | routing proxy service (Node.js) | Squid proxy | the internet 我们正在观察以下错误: 客户 ESOCKETTIMEDOUT 套接字挂断 截断的响应(部分JSON,在中间的某个点切断) getaddrinfo ENOTFOUND 在极端情况下,我们也会看到Postgres和Redis连接出现networking错误 ELB 有时我们观察到浪涌队列填满并丢弃连接。 这似乎已经通过启动更多的路由器盒来解决。 路由代理 ECONNRESET 超时 EMFILE 我们试过了什么? 增加Node.js HTTP代理的maxSockets值 增加最大打开的文件ulimit值 增加TCP somaxconn 监视连接池大小(通常在正常范围内) 任何想法赞赏。

节点js连接到Photoshop

我正在寻找关于与Photoshop的套接字连接的示例和文档。 我试图找出他们如何做这个发电机核心 。 我想要做的是连接到Photoshop。 告诉photoshop打开一个文件,在照片上运行一个动作,然后保存。