将socket.io从0.9.x迁移到1.x,configurationRedisStore出现问题
所以我正在将我的节点应用程序从socket.io 0.9.x迁移到1.x,并且在configurationRedisStore时遇到了问题。 我在使用0.9.x时已经有了这个工作,但我无法弄清楚如何使用1.x工作。 该文档似乎只适用于0.9.x. 以下是他们的文档中的相关部分,我遵循并使用旧版本:
var RedisStore = 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', new RedisStore({ redisPub : pub , redisSub : sub , redisClient : client }));
从我可以告诉问题似乎是这个部分:
var RedisStore = require('socket.io/lib/stores/redis') , redis = require('socket.io/node_modules/redis')
这些文件在socket.io模块中似乎不再存在。
另外,我一直在使用他们的迁移指南作为参考,但没有提到如何configurationRedisStore的具体变化。
任何帮助或想法将不胜感激。 谢谢!
如果有其他人遇到同样的问题,我就是这么做的。
首先你需要安装socket.io-redis
模块:
npm install socket.io-redis --save
然后,从节点应用程序中,您需要将以前的套接字+与redis相关的configuration代码replace为以下内容:
var redis = require('socket.io-redis') io.adapter(redis({ host: 'localhost', port: 6379 }))
而已!
参考链接:
对于socket.io> 0.9这是通过使用socket.io-redis的io.adapter检查链接https://github.com/Automattic/socket.io-redis
var redis = require('socket.io-redis') ; io.adapter(redis({ host: 'localhost', port: 6379 })) ;
好。 据我所知,这个新版本的socket.io(1.0.6,具体)不再有socket.io/node_modules下的redis,对吧?
所以,解决方法是安装socket.io-redis并使用它。 但是,如果运行节点抱怨socket.io-redis没有任何createClient()方法,那么sub = redis.createClient()可以被重用。
另一方面,如果我select保持与socket.io 0.9.16(这是我到目前为止使用的),我得到的其他问题:客户端每20秒重新连接(看起来像是与xhr -轮询)。 而且我也无法find任何关于这个的东西,所以,这就是为什么我决定更新socket.io,由于某种原因,他们决定改变事物的地方。
任何人都可以帮助使socket.io-redis和nodejs再次工作(使用redis.createClient()或类似的东西)?
- 使用Python在PostgresSQL触发器上写入stream
- 无法从React客户端向Node.js websocket服务器发送消息
- 节点JScallback在同步执行
- 找不到Python可执行文件“/path/to/executable/python2.7”,可以设置PYTHON envvariables
- 反应本地错误 – react-native-xcode.sh:第45行:react-native:命令未find命令/ bin / sh失败,退出码为127
- Cloud Foundry node.js应用程序在iOS Safari移动中加载速度较慢
- 何时使用node-mysqlclosuresMySQL连接?
- 在MongoDb中find两个集合的交集
- JSON不使用Panini加载