Tag: 套接字

如何在socket中传递参数

我需要在socket中传递参数,并使用方法emit 。 服务器端: var http=require('http'); var numero_giocatori=0; var express = require('express'); var app = express(); var net = require('net'); var client = new net.Socket(); var vettore_clienti=[]; var chatServer = net.createServer(); chatServer.on('connection', function(client) { numero_giocatori=numero_giocatori+1; vettore_clienti.push(client); if(numero_giocatori===2){ console.log("IScritto "+numero_giocatori); for(var i=0;i<vettore_clienti.length;i++){ vettore_clienti[i].emit('vettore_clienti',vettore_clienti); } } }); chatServer.listen(8000,'127.0.0.1'); 但是我不知道如何读取我首先通过emit方法传递的值。 客户端: var net = require('net'); var client = new […]

在socket.io中断开连接后更新node.js中的数组

我正在尝试创build一个新的socket.io实时分析连接。 我有两种types的用户。 普通用户及其驱动程序。 这是授权的代码 io.configure(function() { io.set('authorization', function(handshake, callback) { var userId = handshakeData.query.userId; var type = handshakeData.query.type; var accessKey = handshakeData.query.accessKey; var query = ""; if(type = '') query = 'SELECT * FROM users WHERE id = ' + userId + ' AND accessKey = ' + accessKey; else query = 'SELECT * FROM […]

强制连接在nodejs中的一段时间后closures

我有用户http.request连接到nodejs中的另一台服务器。 不幸的是,服务器在某些情况下有延迟响应。 所以我想在一段时间后closures请求。 我发现了下面的代码,但是如果目标服务器不可达或连接尚未build立,这个closures连接。 req.on('socket', function (socket) { socket.setTimeout(myTimeout); socket.on('timeout', function() { req.abort(); }); }); 我想要的是closures连接,例如2秒钟之后数据是否到来。 有没有人有任何想法?

最近开始使用socket.io – 在向公众发布网站之前应该采取哪些安全措施?

套接字服务器不处理用户的任何login或任何input,它只是在一个mysql数据库提供给用户的信息。 没有使用socket.io之前,我不知道什么东西,我应该看看用它来开发。 例如有人可以访问.js“服务器”的内容? 因为我的包含一些敏感的数据,如SQL凭据。

在Node.js中打开多个UNIX域套接字:为什么我得到EAGAIN错误?

我的用例(webservice): 多个客户端=> Webserver =>通过UNIX域套接字向C程序发送消息。 我一直在使用Apache + PHP的Web服务器层,但我目前正在用Node.jsreplace它的过程。 web服务最多可以达到100个请求/秒,所以当一个新的请求进来时,C程序会很忙,这是一个非常真实的情况.PHP处理得很好,但是Node.js通常会失败, { "code": "EAGAIN", "errno": "EAGAIN", "syscall": "connect", "address": "/tmp/service.sock" } 我假设这是因为PHP执行某种消息队列/重试,将确保所有消息发送到C程序(哪个Node.js不)。 有没有一种简单的方法来做同样的Node.js或将不得不实现一个自定义的消息队列? C套接字创build: int listenSocket, newSocket; struct sockaddr_un localAddress, remoteAddress; // Create socket if ((listenSocket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1){ printf("Error opening listener socket"); exit(1); } // Configure socket localAddress.sun_family = AF_UNIX; // Set UNIX domain […]

使用代理的NodeJS简单UDP客户端服务器应用程序

我正在使用UDP协议编写一个简单的客户端服务器NodeJS应用程序。 这个应用程序的要点是,它需要使用一个经纪人,其中的function,在给定的情况下,是连接发件人和接收者。 这些要求告诉我,发件人不需要知道接收者的IP地址和端口号 – 只需要知道代理的相应IP和端口。 之后,代理将根据服务器的IP和端口将客户端的消息发送到服务器。 为了澄清以前的(混淆)段落,下面你会发现我迄今为止所做的一个例子: sender.js var PORT1 = XXXXX; var HOST = '127.0.0.1'; var fs = require('fs'); var dgram = require('dgram'); var client = dgram.createSocket('udp4'); fs.readFile('Path/to/the/file','utf8', function (err, data) { if (err) throw err; var message = new Buffer(data); client.send(data, 0, message.length, PORT1, HOST, function(err, bytes) { if (err) throw err; console.log('UDP […]

使用Express> 4.0版本的Socket.io和Node.js

我已经阅读了关于这个问题的其他一些post,但似乎没有得到正确的答案。 socket.io“开始”演练已经过时,并告诉做app.js文件中的东西。 因为Express 4.一切都是在www文件中处理的。 到目前为止这么好 – 不应该是一个大问题。 我使用以下命令在正确的项目文件夹中npm install –save socket.io 之后,我去了bin / www文件,并添加了以下代码: … /** * Create HTTP server. */ var server = http.createServer(app); /** * Socket IO */ var io = require('socket.io')(server); /** * Listen on provided port, on all network interfaces. */ server.listen(port); server.on('error', onError); server.on('listening', onListening); … 现在我已经在www文件中需要socket.io了,我将把下面的代码添加到app.js. 由于app.js不再处理的东西,我假设也必须进入www文件: io.on('connection', function(socket){ […]

我怎样才能保持套接字连接从一个窗口到另一个?

我对socket.io相当陌生,但是真的很享受。 我正在使用MEAN堆栈,并开始玩socket.io。 我发现套接字连接已连接到窗口,所以刷新完成后,连接已经死亡。 有了这个说法,我试图实现一个简单的聊天function,类似于他们在socket.io入门选项卡上显示的function,相当容易。 但是,我点击这个聊天button之前,我的连接已经创build。 我想在新窗口中打开聊天窗口,并为以前连接的个人提供聊天。 这是可能的,我怎么能实现这样的function? 我从规划的angular度问,真的不要在这里发布我的代码。 我的代码非常类似于Hello World socket.io聊天应用程序,但我只想保持从一个窗口到下一个窗口的连接。

实用或最佳的socket.io实现

我有一个执行套接字的问题。 情况:用户在他的列表中有n个房间,用户应该能够从每个房间接收通知。 方法1)为每个房间用户打开一个套接字。 在这个用户必须为每个房间打开多个套接字 方法2)用户打开房间名= userid的单个套接字,节点维护每个房间的列表('room_user')和该房间中的用户(这可以在连接时完成)。 例如 room_user:{ room1 : { user1Id, user2Id } room2 : { user1Id, user3Id } } 对于发送消息,服务器从指定房间的列表中获取用户标识,然后将消息循环发送给所有用户。 在这种方法中,用户只能打开一个套接字,但服务器必须在一个循环中发送相同的消息 我想知道哪种方法更适合

socket.io轮询返回Laravel 500 NotFoundHttpException

我试图设置一个node.js socket.io服务器,它不工作。 看来它试图首先轮询到node.js服务器,但是因为我使用Laravel来处理大部分应用程序,所以这个应用程序正在启动并返回一个Not FoundHttpException Node.js服务器代码: var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); var redis = require('ioredis'); var Redis = new redis(); Redis.subscribe('live-updates'); Redis.on('message', function(channel, message) { message = JSON.parse(message); console.log(channel, message); io.emit('foo', message.data); }); io.on('connection', function() { console.log('foo'); }); 客户代码: var socket = io.connect('http://myapp.app'); socket.on('foo', function(data) { console.log(data); }); 所有这一切都会在我的客户端触发下面的HTTP长轮询请求: […]