Tag: 套接字

node.js socket.io获取cookie值

我想用socket.io在节点服务器中获取cookie值 所以每次套接字发送消息到服务器我检查cookie的价值 (我不想要会话cookie)只有在明确我得到的cookie router.get('/', function(req, res, next) { var cookie_id = req.cookies.userIDf; console.log(cookie_id); res.render('index', { title: 'Express' }); }); 它的工作在这里,但与socket.io我不能得到cookie任何解决scheme? io.sockets.on('connection', function (socket) { var cookief =socket.handshake.headers['cookie']; console.log(cookief); // its give me session id not the cookies });

Node.js – Socket.io – “最大并发连接数”问题

我有一个socket.io nodejs应用程序的问题(在Windows Azure中)。 它工作正常,但过了一段时间,我得到一个错误,服务器回应为: HTTP / 1.1 503活动WebSocket请求的数量已达到允许的最大并发WebSocket请求数 我在Windows Azure的基本计划,根据这个职位https://azure.microsoft.com/en-us/blog/introduction-to-websockets-on-windows-azure-web-sites/我可以有350并发连接 。 我正在使用Windows Azure日志来计算活动套接字,并且在350个套接字已连接(和断开连接)的确切点上,服务器将回应该错误。 服务器设置: var client_id = 0; var connectCounter = 0; var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); console.log('server init.'); }).listen(port); io = io.listen(server); io.sockets.on('connection', function(socket) { socket.client_id = client_id; client_id++; connectCounter++; console.log('A socket with client_id ' + socket.client_id + […]

通过Node.js + websocket服务器上的游戏对象循环播放?

根据我的研究,websockets是在客户端和服务器之间快速发送数据的可靠方法,因为没有HTTP开销。 socket.io示例显示了仅在套接字消息传递期间发生的逻辑: https://github.com/socketio/socket.io/blob/master/examples/chat/index.js 在实时游戏中,逻辑需要在套接字连接之外发生,例如, 移动怪物,抛射物,计时器等 我想像一个游戏实例的任何好的解决scheme对于多个游戏实例都能很好地工作。 也许Node.js async.each()和async.parallel()将工作? 我想保持一致的内部时钟或“帧”比率来更新游戏逻辑。 在客户端,我可以使用 loop() { this.now = Date.now(); var delta = this.now – this.last; this.last = this.now; this.dt = this.dt + delta; if (this.dt < this.rate) { window.requestAnimationFrame(this.loop.bind(this)); return; } else { this.game.loop(); this.draw(); this.dt = this.dt – this.rate; } this.game.loopKeyboardInput(this.key_pressed_map); window.requestAnimationFrame(this.loop.bind(this)); } 跟踪时差。 我如何在服务器上做类似的事情?

Android Node.js Socket.io不能连接

我有一个Node.js服务器使用socket.io和一个Android应用程序。 我想我的应用程序连接到服务器。 (我在当地工作) 所以首先我启动服务器: 命令提示符 这是它的代码: var express = require('express'); // call express var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); var port = process.env.PORT || 1234; app.get('/',function(req,res){ res.send("Welcome to my socket"); }); io.on('connection', function (socket) { console.log('one user connected : '+socket.id); // when the client emits 'new message', this listens […]

在用户发送GET请求时,如何才能等待数据,直到它从TCP服务器的Node.js中接收到?

我想发送一个hello消息给基于C ++的服务器,一旦消息发送,端口“9090”侦听,服务器将做一些工作或任务,这将需要一些时间,所以我不想离开应用程序。得到(); function块,我怎么能做到这一点,直到从服务器获取数据,然后发回给用户作为回应? 基本上我想要的是不回复用户,留在循环中while(close_connection_flag == false),直到它设置为true离开循环(直到我得到一个tcp-reply数据),然后离开循环,并回复用户。 代码我有: var net = require('net'); var tcp_client = new net.Socket(); var express = require('express'); var app = express(); var close_connection_flag = false; var flag_raised_by_server = ''; app.get('/', function(req, res) { tcp_client.on('connect', function(){ console.log('[+] Connected.'); tcp_client.write('HelloServerSideFrom:Client-Server'); }); while(close_connection_flag == false) { tcp_client.on('data', function(data) { switch(data){ case 'HelloClientServerFrom:Server': close_connection_flag = true; […]

Socket TCP连接在不同的服务器上

我想知道是否可以在服务器之间使用TCP协议创build套接字连接。 例如:我有两个服务器,一个是API,另一个是服务,所以API调用服务,如果不在同一台机器,我怎么能发送消息? 我使用ZeroMQ ,我绝对需要这种分离。 其他import件是安全的。 TCP套接字连接是否安全? 谢谢。

如何绑定一个TCP套接字而不侦听nodejs?

我想在应用程序期间预留一个端口,但应用程序不应该一直在端口上进行监听。 因此,我想从listen()调用中分离bind() listen()调用。 nodejs中的UDP / Datagram套接字具有bindfunction。 但是我在“普通”(TCP)套接字API中找不到它的等价物。 是否可以绑定而不听?

Socket.IO 1.4.x中的传输设置

我一直在用Heroku的deployd修补,以此为出发点: https ://gist.github.com/facultymatt/5373247 那个server.js的第20行尝试为socket.io设置传输,如下所示: server.sockets.manager.settings.transports = ["xhr-polling"]; 但遇到此错误: 无法读取未定义的属性“设置” 。 从目前的研究看来,这个方法在socket.io 1.4.5中已经被弃用了。 但是,如果是这样,我不清楚我应该如何处理这个设置。 我的问题类似于这个http://j.mp/socket-io-settings 。 但是,一旦socket.io已经构build并附加到deployd的一个实例,我试图改变设置。 任何指针赞赏。 谢谢!

node.js中的UDP套接字

我试图连接到另一台计算机上的UDP套接字,使用node.js的UDP套接字,我得到以下错误: bind EADDRNOTAVAIL192.168.1.50;12345 我正在使用下面的代码: var port = 12345; var host = "192.168.1.50"; var sock = dgram.createSocket("udp4"); sock.on("listening", function () { console.log("server listening "); }); sock.on("error", function (err) { console.log("server error:\n" + err.stack); sock.close(); }); //start the UDP server with the radar port 12345 sock.bind(port, host); 任何帮助? 谢谢

Socket.io和Nodejs:向多个客户端发送响应并更改不被保存(?)

编辑:我的第一个问题已经解决(相当简单)。 第二个问题仍然有效,对于这个问题,我不知道如何解决这个问题。 我正在制作一个多人数独游戏。 我是Nodejs和套接字的新手,所以如果我的想法是错误的,请纠正我。 这是一个正在进行的工作,现在我正在做的是:当用户将一个值input到其中一个单元格中时,它将使用该单元格的索引发送到服务器的请求(?)。 然后,服务器从答题卡中find正确答案,并将结果发送回客户端。 然后,javascript代码将通过,如果正确的input被放置,它将把所有用户的答案( 注:我假设用户正在input正确的答案,现在我将工作在错误的答案部分之后 )。 问题: 1)现在,正确的答案将locking在单元格中提交正确答案的人,但不会显示给所有客户。 2)如果我向另一个单元格提交答案(无论是否正确),它将删除以前的更改 – 也就是用户先前input并locking的单元格, 这是我的JavaScript代码: function closeCellInput($cell) { var index = $boardCells.index($cell); // var target = findTarget(index); //SHOULD BE SERVER socket.emit('target', index); socket.on('targetResult', function(data){ console.log('data: ' + data); var target = data; var number = $cell.find('input').val(); var complete = false; $cell.empty().removeClass('empty').removeClass('solved').attr('style', null); socket.emit('index', index); if […]