草庐IT

cdp-node

全部标签

node.js - 使用 Redis 的 Heroku Node.js 应用程序上的 WebSocket 和多个 Dyno

我正在构建一个部署到Heroku的应用程序,它使用WebSocket和Redis。当我只使用1个dyno时,WebSocket连接工作正常,但是当我扩展到2个时,我发送事件我的应用程序执行两次。constws=require('ws')constjwt=require('jsonwebtoken')constredis=require('redis')constUser=require('../models/user')functionverifyClient(info,callback){lettoken=info.req.headers['sec-websocket-protoco

node.js - 设计模式 : Combining http requests with pluggable Redis caching mechanism

对于API工作,我倾向于通过围绕Redisget/set函数包装http请求来缓存第3方API响应,例如:importhttpfrom'request-promise-native';importredisfrom'redis';importbluebirdfrom'bluebird';bluebird.promisifyAll(redis.RedisClient.prototype);bluebird.promisifyAll(redis.Multi.prototype);constredisClient=redis.createClient();constgetData=async

node.js - IORedis 或 (node_redis) 回调在调用自定义 Redis 命令/模块后未触发

在nodejs应用程序的websocket消息事件中使用redis客户端(ioredis或node_redis)时,不会立即触发任何命令的回调。(虽然操作确实发生在redis服务器上)奇怪的是,第一个命令的回调会在我发送第二条消息后触发,而第二个命令的回调会在我发送第三条消息后触发。wss.on('connection',(socket,request)=>{socket.on('message',(data)=>{console.log("willsendtestcommand")this.pubClient.hset("test10","f1","v1",(err,value)=>

node.js - 使用 Node.JS createClient() 方法时,与 Redis 客户端一起使用的相同 Redis 密码失败了吗?

我有一个运行Node.JS版本10.4.2的Redis服务器。我在我的应用程序中使用NPM“redis”客户端。我正在使用以下代码创建Redis客户端并进行身份验证。(注意下面注释掉的代码,看看我还尝试了什么):varredis=require("redis");//varredisClient=require('redis').createClient(process.env.REDIS_URL||redis);varredisClient=redis.createClient({port:process.env.REDIS_PORT,host:process.env.REDIS_U

node.js - 从 ECS 集群中的 docker nodejs EC2 容器连接到 Redis Elasticache 集群

我正在构建一个身份验证服务器,用于存储用户访问token并跟踪它们我想使用redis。我已经成功创建并部署了一个小的nodejs应用程序,并将其包装到一个只返回token的docker容器中。然后我将它推送到AWS中的ECR存储库并创建了一个运行的任务和完美运行的EC2实例。到目前为止一切顺利。当我尝试连接到我创建的集群时,问题就来了。我正在使用thisnodejsredismodule,效果很好。我已经更改了VPC,因此所有集群和实例都处于相同的网络配置下。也许这就是我搞砸的地方,因为我不是部署方面的专家,更不是网络安全组方面的专家。此外,我已经成功地从同一VPC下的另一个EC2实例

node.js - 使 JWT 失效的成本、性能和陷阱

我在我的应用程序中实现了JWT,如果我需要用户的token无效,我会使用Redis来存储黑名单token。我很好奇此时是否值得使用JWT而不仅仅是使用典型的session方法。在生产中使用AWSElasticbeantalk作为Node服务器及其RDS是否会节省资金?使用Redis是否比查询数据库(mysql)更快?我的假设是它更快。使用JWT加Redis使token无效是否存在无法避免的陷阱?对我来说,这似乎是一个不错的解决方案,如果性能和成本都在那里,保留JWT是值得的。 最佳答案 经过几个小时的研究并将其实现到我的系统中。自从

python - 一个文件启动所有服务... mongodb、redis、node、angular 和 python

好吧,我的问题是。如何创建一个可以启动nodeangular、pythonmain_worker.py、MongoDB和redis的文件?我真的不知道从哪里开始。我只想启动我的web程序而不打开7个控制台来启动每个服务,如pythonworkerangularNode和数据库。 最佳答案 我知道angular和MongoDB其他人不知道,这对你有帮助吗?尝试以下方法,但你需要一个控制台"scripts":{"dev":"concurrently\"mongod\"\"ngserve--proxy-configproxy.conf.j

node.js - 安装 screepsmod-mongo 并运行 npx screeps start 后权限被拒绝

我成功安装了screepmod-mongo。但是在执行npxscreepsstart时出现错误,如下:gypERR!configureerrorgypERR!stackError:EACCES:permissiondenied,stat'/root/.npm/_npx/4679/lib/node_modules/screeps/node_modules/isolated-vm/.node-gyp/8.16.0'gypERR!SystemLinux4.15.0-54-genericgypERR!command"/usr/local/bin/node""/usr/local/lib/nod

node.js - 我应该像这样使用 redis : req. session.surname = 'toto' 还是像这样 client.set ('surname' , 'toto' )

怎么了!我将redis与express和nodejs一起使用。在查看如何从Redis插入或检索数据时,我看到了两种方法,一种是这样的:req.session.surname='toto'console.log(req.session.surname)另一种方式是这样的:client.set('surname','toto')client.get('surname',(err,data)=>{console.log(data)})这两种方法有区别吗?谢谢你的帮助。干杯! 最佳答案 这两种方法没有太大区别。在第一个中,如果您需要更高的可

node.js - 没有从 Laravel 中的 Redis 发布功能获取消息

我正在从Laravel发布消息,但没有进入Nodejs端。我正在使用Laravel5.8。Laravel代码:namespaceApp\Http\Controllers;useRedis;classHomeControllerextendsController{publicfunctiontest(){$redis=Redis::connection();$test=$redis->publish('message',json_encode(['foo'=>'bar']));echo$test;//returned0exit;}}NodeJs代码:varapp=require('exp