草庐IT

socket_handle

全部标签

Redis客户端广播问题(在Socket.IO的上下文中)

所以我阅读了一些关于扩展Socket.IO的文章。由于各种原因,我不想使用内置的Socket.IO缩放机制(主要是它似乎效率低下,因为它向Redis发布了很多东西,然后从我的角度来看需要)。所以我想到了这个简单的想法:每个Socket.IO服务器创建Redis发布/订阅/存储客户端,连接到Redis并订阅一个channel。现在,当我想广播数据时,我只需将它发布到Redis,然后所有其他Socket.IO服务器获取它并将其推送给用户。但是有一个问题(我认为这也是Socket.IO内置机制的一个问题)。假设我想知道所有已连接用户的数量。至少有两种方法可以做到这一点:服务器A将give_m

django - Redis 到 Socket.IO

我正在使用Django制作一个实时网络应用程序。Django完成了所有繁重的工作。为了使应用程序实时,当在Django中进行更改时,它会发布到redis。然后我设置了一个node.js应用程序,将数据从redis编码到socket.io。所以现在事情看起来像这样。Django->Redis->Node.js->Socket.IO->浏览器我对使用redis没意见,认为它很棒。我调查了gevent-socketio但这不是我要找的。有没有办法:Django->Redis->Socket.IO->浏览器? 最佳答案 Redis和sock

python - redis-py - 连接错误 : Socket closed on remote end - overload?

我正在通过redis-py使用Python中的Redis将JSON存储在排序集中。一切正常,直到我尝试从Redis中获取一定数量的数据。redis.StrictRedis(host='localhost',port=6379,db=12)redis_client.zrange('key',0,20,'desc')可以正常工作,因为我只请求20个条目。只要我尝试超过35,我就会得到:ConnectionError:Socketclosedonremoteend我已经尝试通过将查询“分块”为5组来解决这个问题,但似乎我正在用大量5的查询快速访问Redis,这仍然会导致异常。我是不是在对re

multithreading - 为什么 redis+socket.io 的性能比 socket.io 更好?

我之前的所有代码都在socket.io+node.js服务器中。我最近将所有代码转换为redis+socket.io+socket.io+node.js,因为当太多用户通过服务器发送消息时,性能会降低。那么,为什么单独使用socket.io会很慢,因为它不是多线程的,所以它一次处理一个请求或发出。Redis所做的是分发这些请求或跨channel发出。客户端订阅不同的channel,当一条消息发布到一个channel时,所有订阅它的客户端都会收到这条消息。它通过这段代码实现:sub.on("message",function(channel,message){client.emit("m

node.js - 使用(socket.io + RedisStore)跨多个服务器进行通信

我正在使用Node.js和Socket.io开发一款多人在线游戏。我希望有很多玩家加入游戏,所以我将其托管在AmazonOpworks上。问题是服务器无法将套接字事件发送到连接到不同服务器的客户端。我正在使用RedisStore来管理socket.iosession。我相信RedisStore和socket.io以无缝的方式处理了这种服务器间通信。这是对另一个问题的引用:Howdoessocket.iosendmessagesacrossmultipleservers?但事实并非如此。如果消息位于不同的服务器上,则不会传递给其他客户端;如果只有一台服务器,该应用程序可以运行,但如果我使

node.js - NodeJS Socket.io Server<-->服务器通信

我正在尝试使用socket.io在NodeJS(集群架构,独立虚拟机)中建立服务器到服务器的通信。我尝试使用此处发布的内容http://socket.io/docs/using-multiple-nodes/vario=require('socket.io')(3000);varredis=require('socket.io-redis');io.adapter(redis({host:'localhost',port:6379}));所以我假设(可能是错误的)在执行io.emit("message","someexamplemessage")时我可以通过以下方式收听它:io.on(

node.js - Socket.IO - Redis : SUBSCRIBE can't be processed. 连接已经关闭

我有一个简单的Redis-Socket.IO聊天应用程序,当用户按下F5或尝试刷新页面时,它会抛出以下(redis)异常:SUBSCRIBEcan'tbeprocessed.Theconnectionisalreadyclosed.当用户刷新页面时,套接字重新连接,我的子RedisClient对象抛出此异常。此事件轮到导致我的server.js也崩溃。当注释掉io.sockets.on连接中的所有sub和pub对象时,套接字重新连接,没有任何异常,server.js继续运行。我的server.jsvarsocket=require('socket.io');varexpress=req

django - 错误 : Cannot find module 'socket.io/node_modules/redis' on Mac

我正在尝试运行此示例(http://maxburstein.com/blog/realtime-django-using-nodejs-and-socketio/),但出现此错误:module.js:340throwerr;^Error:Cannotfindmodule'socket.io/node_modules/redis'atFunction.Module._resolveFilename(module.js:338:15)atFunction.Module._load(module.js:280:25)atModule.require(module.js:364:17)atre

javascript - Socket.io 和 Redis Pub/Sub 不工作

大家好,我想弄清楚我的代码中有什么错误,我的代码是关于socket.io和redispub/sub的,这是我第一次尝试这个,我希望你们能帮助我。这是我的index.htmlvarsocket=newio.Socket();socket.connect();socket.on('connection',function(socket){console.log('Connected');});socket.on('disconnect',function(socket){console.log('Disconnected');});TestPage这是我的app.jsvarredis=re

redis - 使用 socket.io-redis 的例子

大家好,感谢您的宝贵时间和帮助。我需要一个使用socket.io-redis的简单示例,请评论。我阅读了文档,但我不明白。谢谢, 最佳答案 socket.io-redis文档没有提到您实际上需要运行一个redis服务器,因此您可能已经忘记了这一点。socket.io-redis插件使用redis服务器的pub/sub客户端连接多个socket.io实例。从https://redis.io下载并安装一个redis服务器将redis插件添加到您的socket.io实例中:varexpress=require('express');var