Articles of 套接字

node.js的“net”包中的socket.write函数没有写入套接字

我在使用node.js的net包编写2个消息到TCP套接字时遇到了一些麻烦。 代码: var net = require('net'); var HOST = '20.100.2.62'; var PORT = '5555'; var socket = new net.Socket(); socket.connect (PORT, HOST, function() { console.log('CONNECTED TO: ' + HOST + ':' + PORT); // Write a message to the socket as soon as the client is connected, the server will receive it as message from […]

使用套接字将数据从node.js发送到Java

我试图通过套接字将数据从node.js发送到Java。 我四处搜寻,但没有什么是真正有用的。 我习惯了socket.io,但在这种情况下,它似乎并不适合这个。 似乎所有的node.js套接字扩展都不适合发送消息,而是倾听消息并回答问题。 我的Java应用程序基本上应该从node.js接收一些工作,做一些工作并将一些结果发回到node.js。 不,工作不能在node.js上完成,它必须由Java(实际上是Scala,但是不pipe)来完成。 你们有谁知道我该怎么做这样的事情? 谢谢

套接字挂起与nodejs的错误

我想为某个XYZ服务器设置代理服务器,但我不是pipe理员。 然后,我想对请求和响应头进行一些分析,然后通过请求和响应主体进行分析。 所以我使用http代理https://github.com/nodejitsu/node-http-proxy 这是我正在做的事情: var proxy = httpProxy.createProxyServer(); connect.createServer( connect.bodyParser(), require('connect-restreamer')(), function (req, res) { proxy.web(req, res, { target : 'XYZserver' }); } ).listen(config.listenPort); 高达GET请求一切都很好,但每当有一些像POST,PATCH,PUT等请求的身体的请求,我得到的错误: Error: socket hang up at createHangUpError (http.js:1472:15) at Socket.socketCloseListener (http.js:1522:23) at Socket.EventEmitter.emit (events.js:95:17) at TCP.close (net.js:466:12) 我谷歌了很多,但没有发现什么是错误的线索。 我使用“proxy.web”的“ws:true”选项启用套接字代理,但仍然是相同的错误。

在expresspath文件中使用socket.io

我试图用Node.js使用Socket.io,并发送到一个路由的逻辑内的套接字。 我有一个相当标准的Express 3安装程序,其中包含一个位于path中的server.js文件,然后我有一个index.js,位于path文件夹中,用于导出网站的所有页面/公共访问function。 所以他们看起来像: exports.index = function (req, res) { res.render('index', { title: "Awesome page" }); }; 在server.js中定义的路由如下所示: app.get('/',routes.index); 我假设我必须在server.js中创buildsocket.io对象,因为它需要服务器对象,但是如何访问该对象并从index.js导出函数发出它?

nodejs分析未知和未计入的结果

我正在运行nodejs 4.4.7 LTS 我运行这里描述的探查器https://nodejs.org/en/docs/guides/simple-profiling/ : node –prof app.js 接着: node –prof-process isolate-something-v8.log > processed.txt 我是否缺less分析器或其他东西? 代码是关于什么的: NodeJS应用程序是socket.io服务器发送数据从WEB到C + +应用程序和反对。 从下面的结果可以看出,这里有大量的未logging的抽搐。 什么可能导致这种情况,以及如何知道在这种情况下我的应用程序的瓶颈? 有什么可以解决的? Code move event for unknown code: 0x61047523c0 Code move event for unknown code: 0x6104bf74a0 Statistical profiling result from isolate-000001E1507CF2D0-v8.log, (211705 ticks, 210634 unaccounted, 0 excluded). [Shared libraries]: ticks total nonlib name [JavaScript]: ticks […]

到Docker的套接字连接最初成功,然后失败

在MacOS下运行我将一个node.js应用程序与net.Socket()连接到同一主机上运行的Docker容器中,该容器包含Centos下的C ++套接字服务器。 Docker运行命令是: docker run -it –rm -p 14000-14010:14000-14010 -v /Users/me/Development/spdz:/spdz spdz/spdzdev 当docker中的c ++服务器没有运行时,我看到一个成功的连接,在3ms之后,一个套接字closures消息。 看起来好像容器前面的代理正在接受请求,并将其传递给Docker,拒绝它。 然而,这导致我认为连接成功的前端应用程序中的错误消息,只是后来发现它不是。 我想看到一个简单的连接下降。 任何关于如何解决或更好理解的build议都是有帮助的。 我相信这个行为是由Docker引入的,因为在Docker之外运行组件给了预期的即时连接失败。 此外,我已经尝试将导出的端口映射到外部networking接口而不是本地主机,但看到相同的行为。

ELB上的套接字io需要连接到应用程序服务器的所有实例

我有一个套接字服务器应用程序写在节点js上,托pipe在Amazon EBS(Elastic bean stalk)上,由负载平衡器 客户端连接到套接字并传递指定的ID,说event_id我的应用程序创build名称为“event_ event_id ”的房间,并join房间。 不同的客户有不同的“event_id” 一个lambda函数连接到套接字,并向应用程序发出一个名为“event_push”的事件,其中包含必要的数据,如event_id 每当我的套接字应用程序(在EBS中的一个实例中)检测到带有event_id的推送事件时,它就将推送的event_id广播给房间的所有成员“event_ event_id ”,从而所有成员得到事件的通知 客户端可以连接任何由负载均衡器决定的服务器,而粘性会话可以保持连接 现在我的问题:有没有办法发出“event_push”只有服务器有一个房间名为“event_ event_id ” Qn:有没有办法将事件发送到EBS中的所有服务器实例? 或Qn:有没有其他解决scheme?

节点Http代理Web套接字平衡

我需要能够在应用程序级别上平衡WebSocket。 让我们说,前面的websocket请求基于我收到的消息,解码它的代理,然后使用该数据发送到另一个套接字服务器使用一些逻辑。 但我无法做到这一点。 这是我写的最初的代码,并试图做到这一点。 这是服务器 var http = require('http'); var httpProxy = require('http-proxy'); var WebSocket = require('ws'); var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({ port: 8080 }); wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.send('something'); }); var proxy = httpProxy.createServer({target: 'ws://localhost:8080', ws:true}); var server = httpProxy.createServer(function(req, res) { […]

如何login后连接到套接字 – 智威汤逊

我正在使用socketio-jwt来validation套接字。 在服务器上: socketio.use(require('socketio-jwt').authorize({ secret: config.secrets.session, handshake: true })); 在客户端: var ioSocket = io('', { query: 'token=' + Auth.getToken(), path: '/socket.io-client' }); 我的问题是,如果一个客户端连接到服务器,authentication失败,并没有build立与套接字的连接。 现在,如果用户login到系统中,与套接字的连接仍未build立。 我试图实现的是,如果用户login到系统,连接就build立起来了。 我到目前为止唯一的想法是重新加载页面,像$window.location.href = '/'; login后。 但似乎不是正确的方法。 另一个select是保持套接字试图(重新)连接超时。 但它是一个不好的select,因为我的应用程序允许用户没有login。 如何正确触发套接字连接?

node.js套接字exception读取ETIMEDOUT – 如何正确捕获它? 怎么写超时?

我有一个代理服务器,pipe理一堆客户端,并与另一个http服务器通话。 消息被来回发送并导向给客户。 客户端可以做超时,服务器有一个心跳function(每n秒重复一次),发送心跳到clientId映射到套接字连接的所有客户端。 当心跳尝试与不再连接的客户端进行通信,但其套接字仍处于活动状态时,会收到“读取ETIMEDOUT”exception。 我试着暂时将套接字连接的超时设置为2000ms,理论上我的套接字事件处理程序会超时(事件处理程序在tcp服务器部分),但是这并没有发生。 它需要几次心跳死亡。 部分问题肯定是我对如何构造node.js代码缺乏了解,所以如果您有任何build议,我会非常感激他们。 另一个问题是,是否可以单独处理读写超时,或者至less将其分开。 我真正想做的是让我的心跳function成为tcp服务器的一部分,只发送一个心跳(如果在n秒内没有听到客户端的声音),只发送一次心跳。 如果我们超时,那么我们杀死socket,否则我们再等一等。 谢谢! >>$ node –harmony-weakmaps server.js Heartbeat: Sat Feb 18 2012 08:34:40 GMT+0000 (UTC) { sending keep_alive to id:00:00:00:00:00:10 socket:[object Object] } socket:received data: {"id":"00:00:00:00:00:10","m":"keep_alive","success":"true"} Heartbeat: Sat Feb 18 2012 08:35:40 GMT+0000 (UTC) { sending keep_alive to id:00:00:00:00:00:10 socket:[object Object] } socket:received data: {"id":"00:00:00:00:00:10","m":"keep_alive","success":"true"} node.js:201 throw […]