Tag: socket.io

每台计算机/用户在Socket.IO中限制连接的套接字

如何限制每台计算机/用户连接到Socket.IO服务器的数量? 我知道我可以使用会话,但如果用户尝试使用多个Web浏览器,那么这将是无用的。 在这种情况下,也可以使用IP地址,但是如果使用IP地址,则会阻止同一路由器(相同IP地址)后面的其他用户连接到服务器 任何其他build议?

Nodejs和socket.ioselect套接字广播

我有一个nodejs + socket.io解决scheme和套接字join不同的房间。 我怎样才能从不同的房间select套接字来向他们广播一个特定的消息,而不用使用for循环来阻止所有用户的应用程序呢?

如何用node.js + redis处理用户和套接字对

直截了当地说:我使用node.js,socket.io和redis作为私人聊天系统。 在连接用户传递他的网站id(userID)到node.js服务器。 他可能有多个连接,所以我必须以某种方式配对每个连接的socketID和用户ID。 我一直在考虑使用redis来存储userID-> sessionID对。 但是,当用户断开连接,我需要从redis中删除这对,但我只有socketID不是用户ID,所以我不能通过该键select.. 现在,我接近这个错误的方式,或者我应该同时存储userID-> socketID和socketID-> userID对? 也许有人能提供更优雅的解决scheme?

Socket.io超出范围或缺less方法?

我开始玩socket.io,我真的很喜欢看到一个更好的书面文档,因为很难find哪些方法有每个对象,callback如何工作等等。 所以我用express和socket.io来试试这个: var app = require('express').createServer() , io = require('socket.io').listen(app); app.listen(8080); var clients = []; /*Routes*/ app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); app.get('/user/:id', function(req, res){ io.sockets.broadcast.emit('user', {id: req.params.id}); }); io.sockets.on('connection', function (socket) { clients.push(socket.id); io.sockets.socket(socket.id).emit('connection', clients); socket.broadcast.emit('conexion', { id: socket.id }); }); 而当试图访问:本地主机:8080 /用户/testing它不起作用,并输出以下内容: TypeError: Cannot call method 'emit' of undefined at […]

在Node.js上使用Socket.io“Error:write EPIPE”

我手动应用这个补丁,现在一切正常。 等待上游来解决这个 https://github.com/LearnBoost/socket.io-client/pull/361/files 我只是试图按照给出的例子,试图让这个工作。 Mockserver.js: var io = require('socket.io').listen(8000); io.sockets.on('connection', function(client) { console.log('+ new client'); client.on('disconnect', function() { console.log('- lost a client'); }); }); Mockclient.js: var io = require('socket.io-client'); var socket = new io.connect('localhost', { port: 8000 }); socket.on('connect', function() { console.log('connected'); }); socket.on('message', function(data) { console.log(data); }); 然后,我在另一个terminal上运行这些带有节点Mockserver.js和节点Mockclient.js的对 info – socket.io started debug – […]

NodeJS函数/模块包含范围

我正在开发一个应用程序与node.js和socket.io。 我已经在一个连接特定的块中build立了一个包含一些variables和函数的小规模项目。 这些函数可以访问在该块中声明的variables,而不需要特别地传递值。 这工作正常,并可以接受这个规模的项目。 但是,当我试图清理代码时,我考虑将这些函数分解到它们自己的文件中,并使用exports.functionname来声明模块,如下所述: http : //nodejs.org/docs/v0。 3.2 / API / modules.html 但是,这些函数在require()'d in而不是实际在文件中声明时通常不会访问同一块中的variables。 有什么方法可以使外部文件中的函数像在nodejs中本地声明一样吗?

我可以将整个JavaScript对象传递给Node.js以进行服务器处理吗?

目前,我序列化一个大的JavaScript对象,并将其发布到服务器。 这个过程需要很长时间。 所以,我想通过node.js / socket.io从客户端传递一个javascript对象到服务器,这样服务器可以处理这个工作负载。 看来,这是行不通的。 这可能吗?

Windows Azure中的node.js应用程序部署

我已经使用node.js,mongodb,redis,express,socket.io构build了我的应用程序,并计划将其部署在Azure中。 我已经看到azure对node.js有很好的支持,它也支持mongo。 但是我不太确定它是否支持redis。 redis好像是在unix / linux下准备好了,但是还没有准备好用于windows,尽pipe它在那里工作。 那么我们可以在一个azure色的linux虚拟机,并安装redis吗? 可能吗 ? 我可以带1个节点的虚拟机,1个为mongo,1个为redis? 如果我有一个群集节点,socket.io会有什么问题吗? 是否需要Nginx? 请把它作为在Azure中部署node.js应用程序的第一个计时器的问题。

我可以请求脚本在Spotify应用程序中使用吗?

我正在尝试在我的Spotify应用程序中使用socket.io,并且[domain] /socket.io/socket.io.js的获取请求不断被取消。 我已经将该域添加到清单和所有内容。 谢谢!

客户端不握手客户端应重新连接,在集群中的socket.io

我的node.js应用程序与express,redis,mongo和socket.io工作正常。 今天当我介绍群集,我发现它的工作原理,但应用程序有很多消息, 'client not handshaken' 'client should reconnect' 来自socket.io的响应时间很多次,非常糟糕,几秒钟。 然后,我使用http-proxy前端结束来自浏览器的请求。 Chrome浏览器间歇性地工作,不会抛出这样的消息。 有时候,如果我再次打开相同的URL,它会开始抛出这些消息,响应被延迟。 Firefox的行为也是一样的。 随机地,它开始抛出这些消息不断..看起来像websocket在集群环境中的一些问题。 我的node.js版本是0.6.10,socket.io 0.9.0,express 2.5.9,http-proxy 0.8.0