Articles of 套接字

Nodejs套接字连接错误

我已经写了这个代码发送数据包到套接字并从中读取。 但是当我运行它时,我从套接字获取数据,但代码抛出错误说阅读ECONNRESET。 我做错了什么? var client = net.connect({port:remotePort, host:remoteIpAddress},function(){ client.write(packet); }); client.on('data',function(chunkData){ console.log(chunkData); client.end(); }); client.on('end',function(){ console.log("Reading end"); }); client.on('error', function(err){ console.log("Error: "+err.message); })

Socket.IO – 如何离线处理Node.js

一切工作良好与不同的浏览器连接到相同的端口聊天了,但是当我用Ctrl + Cclosures我的节点服务器,我在我的浏览器中得到以下错误: GET http://my-url net::ERR_CONNECTION_REFUSED 我已经尝试了以下客户端callback: socket.on('reconnect_attempt' … socket.on('message' … 但是他们没有触发,所以我做了一个肮脏的黑客工作, 使用计时器每秒检查一次套接字,如果节点服务器发生故障,则重新进行一次redirect: setInterval(function(){ if (socket.disconnected) window.open("http://otherurl","_self"); }, 1000); 有没有更好的方法来检测节点服务器是否使用客户端js代码离线?

如何将套接字绑定到多个端口NodeJS

我build立了一个节点应用程序,它从IP地址的端口接收数据包,并将这些内容提供给网页。 这个IP地址有stream量通过两个端口,9999和10000.我的应用程序有以下代码: var PORT_ONE = 9999; var PORT_TWO = 10000; var SENSOR = '239.0.0.1'; var client = require('dgram').createSocket('udp4'); var dns = require('dns'); /* Client starts listening on IP */ client.on('listening', function () { console.log('UDP Client listening on ' + SENSOR + ":" + PORT_TWO); client.setMulticastTTL(1); client.addMembership(SENSOR); }); /* Client receives a message */ client.on('message', function […]

NodeJS:TCP套接字服务器只是第一次返回数据

我正在尝试在node.js中编写一个小的中继脚本,用于侦听本地套接字上的传入TCP连接,当它获取一个时,将stream量转发给第三方。 它还必须从该第三方获取任何返回的数据并将其发送回原始的本地套接字。 我已经尝试了像http://delog.wordpress.com/2011/07/19/a-tcp-relay-mechanism-with-node-js/这样的代码,它确实工作,但它要求发件人是一个服务器正在监听一个套接字本身,而我的工具是用来处理任何试图创build一个出站TCP连接的程序。 不幸的是,我遇到的问题是,当客户端首次将数据发送到“路由器”程序,路由器将其转发到另一台服务器,然后从客户端返回数据时,一切都很好。 但是,当客户端程序结束或终止并尝试重新连接,我得到这个: events.js:72 throw er; // Unhandled 'error' event ^ Error: This socket has been ended by the other party at Socket.writeAfterFIN [as write] (net.js:275:12) at Socket.<anonymous> (/root/tcp_loop.js:37:17) at Socket.emit (events.js:117:20) at Socket.<anonymous> (_stream_readable.js:748:14) at Socket.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:410:10) at emitReadable (_stream_readable.js:406:5) at readableAddChunk (_stream_readable.js:168:9) at Socket.Readable.push (_stream_readable.js:130:10) at TCP.onread (net.js:528:21) […]

Socket.io轮询404在Laravel

我正在尝试使用Socket.io实现一个聊天应用程序到我的Laravel应用程序。 聊天应用程序正常工作,但我有问题,使其在Laravel工作。 我尝试在端口8000上服务于Laravel,在8000上服务于聊天服务器。我使用Express 4.8.0和Socket.io 1.0.6,节点0.10.29和nodemon进行testing。 //server.js: var express = require('express'); var app = express(); var http = require("http").Server(app); var io = require("socket.io")(http); http.listen(8000, function () { console.log('listening on *:8000'); }); app.use('/', express.static(__dirname + '/public')); app.get("/*", function (req, res){ res.sendFile(__dirname + "/index.php"); }); //client.js: var socket = io.connect('http://localhost:8000'); // html – 依赖关系,我尝试了所有这些: <script src="//cdn.socket.io/socket.io-1.0.0.js"></script> {{ HTML::script('/socket.io/socket.io.js') […]

与节点的SMTP连接

我试图连接我的客户端到Gmail邮件服务器,而不使用特定的节点smtp库(我想了解如何套接字和smtp都工作),但设置连接到服务器后,我没有得到任何回应,无论我写给sockets。 这是我的代码的一部分: var options = { host: 'smtp.gmail.com', username: 'mylogin@gmail.com', password: 'mypass', port: 25 }, net = require('net'); exports.addEmail = function(req, res) { var client = net.connect(options.port, options.host, function() { console.log('CONNECTED TO: ' + options.host + ':' + options.port); //i can write to a socket anything, still no response client.write('HELO smtp.gmail.com'); }); client.on('data', function(data) { […]

我怎么知道为什么nodejs不能干净地退出?

首先让我先解释我的意思是“干净地退出”。 如果我有一个nodejs应用程序,我真的很长时间setTimeout,或者如果我打开一个套接字连接,我不closures,然后当我运行该应用程序不会退出。 原因很清楚,我认为,nodejs的工作方式是等到“没有更多的工作要做”,然后退出。 这很好,我喜欢这种操作方式。 这也迫使我对于closures套接字而没有定时器的训练有点谨慎。 另一件好事。 但是,我有一个问题,就是我给了一些不遵守这个规定的代码,而且没有干净地退出。 我怀疑代码在某处留下了一个打开的套接字,但代码被缩小了,所以find这个套接字打开的位置并不那么容易。 我的问题是,有没有一种方法,我可以查询nodejs找出哪些套接字打开? 通过查看这样一个列表与ip号码,我可以开始挖掘找出代码是哪里打开他们。

如何模仿一个irc服务器断开连接来testing我的nodejs irc bot?

我正在使用net.Socket模块连接到EFNET并testing我的代码,以便将重新连接事件添加到我的机器人。 有什么方法可以模拟机器人断开连接? 这个问题是非常2-3个星期的问题 – 我已经添加了事件处理程序,以便了解从IRC断开时会发生什么: irc = { info:{} , listeners : [] , socket : new net.Socket() } irc.socket.on('timeout', function() { console.log('timeout'); }); irc.socket.on('error', function() { console.log('error'); }); irc.socket.on('end', function() { console.log('end??') setTimeout(function() { //irc.socket.connect(config.server.port, config.server.addr); }, 1000 ); }); 或者,如果有人知道哪些实际事件通常与irc机器人有关,我会感激。 编辑#1:也许我可以做一些iptables和过滤端口,而它正在运行或沿着这些线?

使用节点JS连接和断开数据卡

我想使用下面的algorithm来完成节点js控制台应用程序的任务: 通过代码连接datacard(获取一个新的静态IP) 通过这个IP做一些操作 在上述操作的回电上断开数据卡 循环回到步骤1 有什么办法,我可以通过Node.js完成? 我已经find了C / C + +和C#的解决scheme,但不是节点js ..任何人都可以请帮助?

套接字IO不能发射

几天来,我一直在试图从这里得到socket.io聊天的例子。 首先,我通过自己input所有内容来尝试。 但它没有工作。 之后,我用github的文件试了一下。 那个部分 当我从github上得到这些文件后,我试了一下,我没有运行 npm install 并下载了依赖到node_modules文件夹,我也跑了 npm install –save express@4.10.2 npm install –save socket.io 我没有任何的命令错误。 我开始与程序 node index.js 这给了我以下信息: 聆听*:30000 如果我去localhost:3000,我得到了聊天应用程序,如在示例中。 但发布表单时不会显示任何消息。 但是,当我使用下面的代码来检查连接: io.on('connection', function(socket){ console.log('user connected'); }); 它工作,所以问题是在发射数据。 另外,下面的代码工作: 服务器index.js io.on('connection', function(socket){ var tweet = {user: "nodesource", text: "Hello, world!"}; // to make things interesting, have it send every second var […]