将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()或类似的东西)?
- npm链接不关心package.json或.npmignore中的“文件”
- 是否有可能在哈斯克尔和前端用JavaScript写后端?
- Node.js或ruby刮
- 当我使用AngularJS和Node.JS上传文件时,“NetworkError:404 Not Found”
- 为什么我不能在Electron中使用脚本标记来引用jQuery?
- TypeError:无法在node.js中调用未定义的方法“toArray”,而在aggregatein mongo中
- Nodejs的udemy课程代码错误
- 永远node.js – 监视文件更改的目录
- 当Mac显示屏closures或Mac被locking时是否可以运行NodeJS服务器?