草庐IT

WSA_IO_PENDING

全部标签

node.js - 使用 Redis Pub/Sub 的 Socket IO 服务器集群

首先,我构建了一个微服务来获取FootballAPI,并通过redis的pub/sub系统,如果有任何实时比分变化,它会发布任何变化。现在我的服务器,带有套接字和路由,将处于集群模式。我已经用socketio-redis设置好了。这是此设置的一个片段:constio=require('socket.io')();constsRedis=require('socket.io-redis');constadapter=sRedis({host:'localhost',port:6379});const{promisify}=require('util');constRedis=requir

session - 由于 session 存储,很可能无法在本地扩展 socket.io

我有一个主进程,它派生了socket.io服务器所有使用集群模块的worker,当然还有socket.io。问题是,除非我特别说明我只需要一名worker,否则我的代码将无法正常工作。我在集群模块存在之前就写了它,它作为单个进程运行良好,现在看来也一样。当它使用RedisStore作为session存储fork4个worker(cpu核心数)时会发生什么:node_redis:nocallbacktosenderror:Error:ERRwrongnumberofargumentsfor'hset'commandCaughtexception:Error:Error:ERRwrongn

node.js - Redis.io 多个 multi() - 它们可以是原子的吗?

我的第二个multi()调用需要第一个multi()的结果。但是我希望multi()的所有命令都以原子方式执行。我该怎么做?这是使用node.js客户端。db.multi().incr('next:user:id').sadd('users:facebookid',facebookId).exec(function(err,replies){varnewUserId=replies[0];//ifsomethingfailsinthismulti(),thenthepreviousmulti()shouldn'tbeexecutedeither.db.multi().hmset('us

javascript - 避免 Redis 持久化(Socket.io + Cluster + RedisStore)

我知道你可以使用Redisforthecommunicationbetweensocket.iosocketsfromdifferentclusterworkers在node.js中,也用于在这些工作人员之间共享其他对象。但我正在努力解决以下问题:Redis数据的持久化是否妨碍了这一点?当主进程关闭时,我如何确定套接字数据已从redis中删除?我怎样才能确保对象相同?我只需要这些数据,直到进程/套接字终止。也许我必须删除保存到磁盘的时间间隔并在主启动时重新加载整个Redis服务器?非常感谢。 最佳答案 您可以使用FLUSHDB从当前

node.js - 是否可以看到与 socket.io 捆绑在一起的 redis 模块内部

因为我们可以将socket.io配置为使用redis来实现它的内部工作方式,如下所示:varRedisStore=require('socket.io/lib/stores/redis'),redis=require('socket.io/node_modules/redis'),pub=redis.createClient(),sub=redis.createClient(),client=redis.createClient();io.set('store',newRedisStore({redisPub:pub,redisSub:sub,redisClient:client}))

node.js - 使用 socket.io 中的对象

这是我的app.jsredis.on('message',function(channel,message){//console.log('Redis:Messageon'+channel+'received!');////message1=JSON.parse(message).object;//console.log(message1);//console.log(message1.question_model_user_id);message=JSON.parse(message);io.emit('new',message);});console.log('userconnec

heroku - 无法在 Heroku 上将 socket.io 与 redis 一起使用

我正在尝试通过RedisToGo在Heroku上使用套接字io。在本地环境下,一切正常。当我将代码部署到Heroku时,大多数时候我从浏览器收到400BadRequest和以下数据:{"code":1,"message":"SessionIDunknown"}我的redis配置是:varurl="redis://redistogo:xxx@lab.redistogo.com:xxxx/";varrtg=require("url").parse(url);varpub=redis.createClient(rtg.port,rtg.hostname,{return_buffers:tru

php - laravel 5 中用于聊天的 Socket.io

所以我有一个使用socketio的脚本、一个node.js服务器和一个用于在laravel中进行实时聊天的redis队列我有一个一切正常,redis队列正在接受输入,当我使用“redis-cli监视器”时我可以看到它,但是消息没有输出到套接字Viewsocket.blade.php@extends('layouts.admin')@section('content')varsocket=io.connect('http://localhost:8890');socket.on('message',function(data){$("#messages").append(""+data+

node.js - 使用 socketio-auth 进行 socket.io 身份验证

我在node.js和Express中有一个服务器,我使用socket.io进行实时消息传递和socketio-auth用于身份验证的模块,我设置了使用此模块的所有内容,但我没有发现作者在示例中使用的db对象和findUser(甚至没有关于它们的一行评论)一起工作,我应该自己实现它们,对吗?如果有人有使用或实现redis的工作示例,我将不胜感激。 最佳答案 db和findUser对象来自MongoDb,与socket.io无关。我建议你看看http://www.tutorialspoint.com/mongodb/更好地理解为什么使用

php - 使用 socket.io 和 redis 进行实时通知

在我的网络应用程序(symfony3)中,我尝试集成一个实时通知系统。我选择使用此配置来完成此操作:服务器Node服务器redis套接字.iosocket.io-php-emitter(用于直接从php发出通知的php适配器)app.js(服务器Node)varapp=require('express')();varhttp=require('http').Server(app);varserver=require('http').createServer();vario=require('socket.io').listen(server);varredis=require('soc