я не понимаю, как использовать socket.io-emitter (сервер-сервер)

Ниже показано, как я инициализирую и испускаю, но я не нахожу никаких ошибок, и мой сервер не прослушивает, не получает никаких событий.

const io = require('socket.io-emitter')({
  host: 127.0.0.1,
  // path: do i need this ?
  port: redisUri.port,
  pub: pub, // is the key required to be the same as the app ?
  sub: sub, // is the key required to be the same as the app ?
});

io.emit('test', 'test'})

Я пробовал много вариантов, может кто-нибудь просветить меня, как я могу отладить это?

Я также пытался добавить redis href перед объектом.


person DarkArtistry    schedule 08.01.2018    source источник


Ответы (1)


Я нашел ошибку, проблема была с сокетами pub и sub.

Вот решение:

var pub = redisPassword ? redis.createClient(6379, localhost, {return_buffers: true, auth_pass: redisPassword}) : undefined;
var sub = redisPassword ? redis.createClient(6379, localhost, {detect_buffers: true, return_buffers: true, auth_pass: redisPassword}) : undefined;
socketio.adapter(require('socket.io-redis')({ host: localhost, port: 6379, pubClient: pub, subClient: sub }));

Это была проблема:

Вместо того, чтобы иметь значение undefined для проверки пароля, я создал еще один клиент, было проще установить его по умолчанию.

Пожалуйста, дайте мне знать, если я могу улучшить свой код. Спасибо.

person DarkArtistry    schedule 09.01.2018