Tag: 套接字

初学Node.JS net.createServer的例子

我是一个老的PERL编码器,试图学习node.JS编程。 我有关于我正在写的代码来创build服务器和客户端应用程序之间的套接字连接的问题。 下面的代码工作。 但我不知道如何接受从客户端发送到服务器的数据。 基本上我想做的事很简单。 客户端连接到侦听套接字的服务器,发送服务器读取的一些信息,然后将信息发送回客户端。 我不理解的唯一部分是如何让服务器端读取/接受/显示从客户端发送的数据string。 有人能指点我的方向吗? 提前谢谢你的帮助。 (对于无知,我很抱歉) 这里是服务器端代码: var net = require('net'); var server = net.createServer(function(socket) { // confirm socket connection from client console.log((new Date())+'A client connected to server…'); socket.on('data', function(data) { var json = JSON.parse(data.toString()); console.log(json) }); // send info to client socket.write('Echo from server: NODE.JS Server \r\n'); socket.pipe(socket); socket.end(); console.log('The […]

何时可以将套接字客户端断开

请看下面的代码。 这是nodeJS中的一个简单的程序。 问题是为什么disconnect不打印? (如果你取消setTimeout注释,问题就消失了)真正的问题是什么?为什么我不能一起启动socketIO客户端和服务器,并在连接之后立即closures套接字? 什么是与socketIO连接的技术? "use strict"; var Promise = require("bluebird"); var socketio = require("socket.io"); var socketio_client = require("socket.io-client"); var http = require("http"); var port = 7457; var hostandport = "http://localhost:" + port.toString(); var server = socketio.listen(port); var client = socketio_client(hostandport); server.sockets.on("connect", function (socket) { console.log("connect"); socket.on("disconnect", function () { console.log("disconnect"); }); //setTimeout(function() { client.disconnect(); […]

NodeJs:读取TCP套接字时永远不会发出“结束”

我对Node.Js很新,我使用tcp套接字与客户端进行通信。 由于收到的数据是零碎的,我注意到它不止一次地向控制台输出“ondata”。 我需要能够读取所有的数据并将其连接起来以实现其他function。 我读了下面的http://blog.nodejs.org/2012/12/20/streams2/,并认为我可以使用socket.on('end',…)来达到这个目的。 但是它从不打印“结束”到控制台。 这是我的代码: Client.prototype.send = function send(req, cb) { var self = this; var buffer = protocol.encodeRequest(req); var header = new Buffer(16); var packet = Buffer.concat([ header, buffer ], 16 + buffer.length); function cleanup() { self.socket.removeListener('data', ondata); self.socket.removeListener('error', onerror); } var body = ''; function ondata() { var chunk = this.read() || […]

节点套接字挂起http错误

我跟着节点的http文件写一个删除请求到本地服务器,但收到套接字挂断错误,类似的问题,我检查了: NodeJS – “套接字挂断”究竟是什么意思? 错误:套接字使用节点v0.12.0挂起 但没有人真正为我的情况工作。 我相信这是代码错误,因为我使用邮递员它为我工作,以下是我的代码 var options = { hostname: 'localhost', port: 3000, path: '/accounts/abc' method: 'DELETE', headers: { 'Content-Type': 'application/json; charset=utf-8' } }; var order = { "secret": "abc_secret" }; var content = JSON.stringify(order); var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); res.on('data', function(chunk) { console.log('resp: ' + chunk); }); […]

Node.js设置setKeepAlive不停止与setTimeout超时

我想弄清楚Node.js的净类如何处理超时和keepalive。 我将它们设置在服务器端,观察设置这些variables有什么不同。 我注意到,如果我将Keepalive设置为以下内容: // Set keepalive socket.setKeepAlive( true, 30000 ); 它绝对会发送Keepalive数据包,我用Wireshark观察。 但是,即使我订阅套接字的超时事件,套接字也不会超时。 所以我尝试设置套接字的超时选项。 // Set timeout variables socket.setTimeout( 60000 ); 即使与keepAlive选项结合使用,在最后一次真正的传输数据包之后,套接字在60秒后仍然超时。 所以我的问题是,如果keepAlive没有做任何事情来防止套接字超时,那有什么意义呢?

在nodejs中使用socket.io和net socket

有没有一种方法,我可以使用socket.io与networking套接字在nodejs? 所以最后我有监听端口的主要服务,等待连接(net socket)和主监听客户端要用socket.iobuild立连接。 示例场景: 主服务在端口X上运行列表以处理来自客户端服务的任何连接请求。 客户端的打开的Web浏览器使用http服务器连接到主要服务 如果客户端服务器(服务器B)通过networking套接字传入数据,数据将通过socket.io发送到连接的客户端打开浏览器。

节点的应用程序与azure

我有这个app.js代码,使端口上的调用:3000和:3001 http = require('http'); var express = require('express'); var app = express(); var server = http.createServer(app).listen(3001); var io = require('socket.io').listen(server,{log:false, origins:'*:*'}); 在底部是 .listen(3000); 所以对于我在蔚蓝的networking应用程序,我不认为:3001打开正确 在我的本地机器上,我可以浏览在localhost:3000端口上的这个文件夹资产,但是到达/socket.io/socket.io.js目录我必须使用localhost:3001这是代码结构的一部分来执行我们的任务想。 我已经跑了很多节点和azure色的实验室,但他们都没有做这个特殊的设置,如果我去命令提示符,并在本地运行app.js,我的networking应用程序在线再次工作,所以我假设端口3001在本地打开我的计算机,而在Azure主机3000上,我需要某种方式使networking应用程序既可以在不运行虚拟机的情况下执行,我也不完全确定在azure色的networking应用程序中所有可能的function。

nodejs socket.io什么都不做,只是连接100%cpu

我是新的nodeJs和socket.io,当我运行它达到CPU 100%(CPU跳跃14-103%..)时,我有大约800个用户在该网站。 起初,我看到的问题是,每隔几分钟,所有的用户断开连接,并在几秒钟后重新连接,所以我注意到所有的代码结束了连接和断开…仍然5分钟后CPU达到跳跃CPU 14- 100%..我不知道要检查什么,因为横向上只是最基本的东西..节点版本 – 0.10.25 socket.io版本 – 1.0代码片段 – var redis = require('redis').createClient(), server = require('http').createServer(), request = require('request'), io = require('socket.io').listen(server), sockets = {}; // , memcache = require('memcache') // , cookie = require('cookie') // run HTTP server on this port server.listen(3000); console.log('started node sockets.'); // only allow authenticated connections – TODO: […]

Node.js:require()并传递variables

用npm开始一个项目,创build了一个特定的文件结构: www < – require()调用app.js; 实例化服务器 app.js < – 实例化var app = express(); 并有module.exports =应用程序; 现在,我想使用sockets.io。 在我的'www'文件中,这是一个代码片段: var app = require('../app'); … var server = http.createServer(app); 我想把我所有的服务器端套接字侦听器放在app.js中,但是下面的代码: var io = require('socket.io').listen(server); 需要服务器作为input。 如何让我在'www'中实例化的服务器可以在'app.js'中访问?

Socket.io随机聊天

我使用:node.js,socket.io 1.37,express.io 我的index.html : <!doctype html> <html> <head> <title>Socket.IO chat</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font: 13px Helvetica, Arial; } form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; } form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; } form button { […]