Я использую phpredis
для отправки данных на node.js
через метод pubsub
. После обновления node.js до стабильной версии 4.2 я получаю сообщение trailing byte
с socket.io-redis
.socket.io-redis get trailing bytes error in redis 3.0.6
node.js
var pub = redis.createClient(2222, '127.0.0.1',{no_ready_check: true})
pub.auth(redisPassword);
var allsub = redis.createClient(2222, '127.0.0.1',{return_buffers: true,no_ready_check: true})
allsub.auth(redisPassword);
allsub.subscribe('somekey');
io.adapter(RedisStore({pubClient:pub,subClient:allsub}));
Ошибка:
Error: 256 trailing bytes
at Object.decode (/usr/apps/js/node_modules/msgpack-js/msgpack.js:200:47)
at Redis.onmessage (/usr/apps/js/node_modules/socket.io-redis/index.js:93:24)
at emitTwo (events.js:92:20)
at RedisClient.emit (events.js:172:7)
at RedisClient.return_reply (/usr/apps/js/node_modules/redis/index.js:697:22)
at ReplyParser.<anonymous> (/usr/apps/js/node_modules/redis/index.js:324:14)
at emitOne (events.js:77:13)
at ReplyParser.emit (events.js:169:7)
at ReplyParser.send_reply (/usr/apps/js/node_modules/redis/lib/parser/javascript.js:302:10)
at ReplyParser.execute (/usr/apps/js/node_modules/redis/lib/parser/javascript.js:213:22)
at RedisClient.on_data (/usr/apps/js/node_modules/redis/index.js:550:27)
at Socket.<anonymous> (/usr/apps/js/node_modules/redis/index.js:105:14)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
at TCP.onread (net.js:523:20)
Для того, чтобы выяснить проблему, я понизили socket.io
до 1,36, но ошибка по-прежнему сохраняется.
Я пошел по предложенным решениям в this thread, но они не работают.
1.Adding return_buffers: true для экземпляров не работает.
Это может вызвать это предупреждение при рестарте:
[nodemon] restarting due to changes...
[nodemon] starting `node node.js`
listening on *:3000
[TypeError: input.split is not a function]
2.Changing зависимостей для msgpack-JS-v5 предложил в последнем посте, но это не работает, как это:
гнезда .io-Redis/index.js
var msgpack = require('msgpack-js-v5');
socket.io-Redis/package.json:
"dependencies": {
"async": "0.9.0",
"debug": "2.2.0",
"msgpack-js-v5": "*",
"redis": "2.4.2",
"socket.io-adapter": "github:automattic/socket.io-adapter#de5cba",
"uid2": "0.0.3"
},
Это просто из ниоткуда. Может ли кто-нибудь сказать мне, как это исправить?
такая же ошибка и нет решения :( – Terion