草庐IT

WSA_IO_PENDING

全部标签

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

javascript - 如何让不同的 Web 浏览器订阅 Redis/Node.js/Socket.io 发布/订阅设置中的单独 channel ?

我希望不同的客户端(网络浏览器)能够订阅单独的Redischannel。我能够将请求的channel从客户端页面传递到node.js服务器。但是,如果我有三个浏览器订阅,每个浏览器订阅三个独立的channel,所有三个浏览器都会收到发布到三个channel中的任何一个的消息。这是客户端HTML代码。我有三个单独的页面,channel名称硬编码到其中。在这个例子中,channel是“channel1”。client1.htmlvarsocket=io.connect('http://localhost');socket.on('giveChannel',function(){consol

node.js - Socket.IO "Host"断开连接时断开所有房间用户

目前我有一个房间的发起者被标记为“主人”。我需要对其进行设置,以便如果“主持人”点击“关闭房间”链接,它将断开所有用户与该房间ID的连接。我如何从socket.manager.roomClients或类似的东西中获取所有用户,遍历所有用户并运行某种类型的socket.leave(room_id)如果“主人”的room_id与套接字管理器中的键匹配?感谢任何见解或帮助。如果我需要澄清任何事情,请告诉我。 最佳答案 在socket.io中似乎没有这方面的机制,但自己实现它并不难。您只需遍历房间中的每个socket并调用disconnec

node.js - 找不到模块 'socket.io/node_modules/redis'

尝试做的时候varredis=require('socket.io/node_modules/redis');我收到错误“找不到模块‘socket.io/node_modules/redis’”,我不知道为什么。我正在运行Windows并运行“npminstallsocket.io”这里似乎是同一个问题:Error:Cannotfindmodule'socket.io/node_modules/redis'但redis服务器已启动并正在运行。在我的“socket.io/node_modules”文件夹中,我没有看到任何与Redis相关的内容。 最佳答案

javascript - node.js + socket.io + 结果需要多个数据库调用

我需要帮助。一天以来,我一直在尝试使用node.js和socket.io进行异步编程。我知道我需要一些流量控制,但我似乎不明白如何正确实现它。我有一个redis数据存储,其中的模块存储在一个集合中,比如'moda','modb'这些模块的实例是“moda:instances”,在“modb:instances”中,这些实例的属性作为散列存储在“moda:instancea”和“modb:instanceb”中。我正在尝试获取以下json:"moda":{"instancea":{"property1":"value1","property2","value2"}},"modb":{"i