草庐IT

nodejs-demo

全部标签

node.js - 如何扩展 NodeJS 有状态应用程序

我目前正在开发一款基于网络的MMORPG游戏,并希望设置基于Docker和DigitalOcean液滴的自动缩放策略。但是,我想知道如何才能做到这一点:我的游戏服务器必须在不同的Docker容器中拆分但是每个游戏服务器实例都应该像一个巨大的游戏服务器一样运行。这意味着在一个游戏服务器中发生的每个修改(角色移动)也应该在每个其他游戏服务器中进行镜像。我试图让它工作(至少在概念上),但找不到正确同步所有实例的方法。我应该使用仅广播事件的主Node还是有替代方法?我想知道关于我的MySQL数据库的同样的事情:因为每个游戏服务器都必须从数据库读取/写入数据库,随着游戏变得越来越大,我将如何使其

node.js - 如何扩展 NodeJS 有状态应用程序

我目前正在开发一款基于网络的MMORPG游戏,并希望设置基于Docker和DigitalOcean液滴的自动缩放策略。但是,我想知道如何才能做到这一点:我的游戏服务器必须在不同的Docker容器中拆分但是每个游戏服务器实例都应该像一个巨大的游戏服务器一样运行。这意味着在一个游戏服务器中发生的每个修改(角色移动)也应该在每个其他游戏服务器中进行镜像。我试图让它工作(至少在概念上),但找不到正确同步所有实例的方法。我应该使用仅广播事件的主Node还是有替代方法?我想知道关于我的MySQL数据库的同样的事情:因为每个游戏服务器都必须从数据库读取/写入数据库,随着游戏变得越来越大,我将如何使其

mysql - 如何跨多个服务器 nodejs 和 socket.io 存储 socket.id

跨多个服务器存储用户的socket.id的最佳方式是什么?以一个简单的聊天应用程序为例,如果不同服务器上的两个用户正在相互发送消息,则两个服务器必须在某个地方存储每个用户的套接字ID,以便它们可以将消息从一个用户发送到另一个用户。目前我正在使用redis哈希来存储每个用户的套接字ID(如果他们在线),但如果用户有两个连接(例如,他们打开了聊天应用程序的两个选项卡),这将不起作用。继续使用redis的最佳方法是重组数据结构以使其在用户连接两次时工作,还是转移到mongodb或mysql之类的东西更好?我还想要一种使数据过期的方法,例如,如果套接字ID存储超过24小时,那么它应该被自动删除

amazon-web-services - Nodejs 应用程序未连接到 amazon ecs 任务定义中的 redis。 getaddrinfo ENOTFOUND redis redis :6379

我正在尝试为连接到redis的nodejs应用程序创建任务定义。我尝试了几种不同的任务定义,但是当我在我的集​​群中运行它们时,它们都失败了,因为我的应用程序无法连接到redis。下面列出了我的任务定义、日志输出、我基于我的任务定义的docker-compose.yml和我的apidockerfile。任务定义{"ipcMode":null,"executionRoleArn":"arn:aws:iam::210939474461:role/ecsTaskExecutionRole","containerDefinitions":[{"dnsSearchDomains":null,"l

node.js - NodeJS connect-redis 与 nodejitsu URI

我在nodejitsu上创建了一个Redis数据库并获得了一个完整的URI,例如:nodejitsu:nodejitsudb11158161232.redis.irstack.com:f327c9sj29sj26e80b8e975fbebb4@nodejitsudb3058169sj32.redis.irstack.comConnect-redis需要一个主机、端口等...任何人都知道我可以将这个字符串传递给它的简单方法吗?将主机设置为那个时似乎不起作用-mongodb似乎可以很好地处理这个模式。 最佳答案 使用url.parseh

javascript - Socket io Nodejs-在用户打开多个选项卡时进行管理

我正在尝试在我的应用程序中进行聊天,但我遇到了一个不知道如何解决的问题!这是塞纳里奥:我们有很多经过身份验证的用户,所以他们都有一个唯一的ID,我想实现像Facebook这样的聊天,这样每两个用户就可以互相聊天。为此,我有一个包含内容的server.js文件:varapp=require('express')();varserver=require('http').Server(app);vario=require('socket.io')(server);varredis=require('redis');varusers=[];server.listen(8890);io.on('

node.js - 在锁定 key 时获取异常 redis-lock nodejs

当尝试如下锁定哈希键时出现异常:我指的是以下文档:https://redis.io/topics/distlockhttps://github.com/mike-marcacci/node-redlockvarredis=require('redis');varRedlock=require('redlock');varredisClient=redis.createClient(settings.redisport,settings.redishost);varredlock=newRedlock(//youshouldhaveoneclientforeachindependentr

node.js - 用 nets 和 nodejs 堆叠字符串

我在使用Redis时遇到问题,文档对我来说不是很清楚,而且我试图制作一个简单堆栈的所有努力都出了问题。我使用nodejs作为服务器,redis与socket一起使用我需要列出特定类型的用户之间的关系他们和房间是多对多的,像这样:MEMBERSROOMS几个成员可能在几个房间里,几个房间可能有几个成员。所有这些信息都在内存中分配,它带来了很多不必要的重量,因此产生了使用redis来管理这些类型的连接的想法。在我的代码中我这样做:像这样启动服务:constio=require('socket.io').listen(http);constredisSocket=require('socke

node.js - 从 NodeJS 将数组插入 redis

我有一个数组,我用这样的for填充它:varobj=[];for(i=0;i之后我验证数组是否包含所需的值(它包含):console.log("Arrayafterthefor:\n");console.log(obj);我尝试将其保存在rediskey下,但reply是undefinedclient.set('order-book:buy:bitstamp',obj,function(err,reply){console.log(reply);});我也尝试过使用rpush,但没有成功。可能是什么问题? 最佳答案 您可以在此处检查

node.js - 如何使用 AWS Lambda 的 Auth/Password NodeJs 在 Redis 中连接?

我正在为AWSApiGateway中的验证token创建一个lambda函数。但是,我需要安全地连接到redis,但是这个配置总是失败:varclient=require('redis').createClient({host:'redis-dev.amazonaws.com',port:6379,no_ready_check:true,auth_pass:'mypassword#c$blx!Na'});错误:{"errorMessage":"2018-06-08T17:55:38.344Z23a4f9da-6b45-11e8-abe5-6119b1378dffTasktimedout