我查看了这个文档:
它指出:
当您订阅频道时,您将收到一条消息,该消息表示为包含三个元素的多批量回复。消息的第一个元素是消息的种类(例如订阅或取消订阅)。消息的第二个元素是您正在订阅或取消订阅的给定频道的名称。消息的第三个元素是您当前订阅的频道数量:
> SUBSCRIBE first second
*3 #three elements in this message: “subscribe”, “first”, and 1
$9 #number of bytes in the element
subscribe #kind of message
$5 #number of bytes in the element
first #name of channel
:1 #number of channels we are subscribed to
这很酷,您可以在订阅频道的批量回复中看到您订阅的频道数量。现在我尝试在使用 ruby 时得到这个回复:
require 'rubygems'
require 'redis'
require 'json'
redis = Redis.new(:timeout => 0)
redis.subscribe('chatroom') do |on|
on.message do |channel, msg, total_channels|
data = JSON.parse(msg)
puts "##{channel} - [#{data['user']}]: #{data['msg']} - channels subscribed to: #{total_channels}"
end
end
但是,我根本没有得到这样的答复。它给我的是频道名称,发布到该频道的数据,然后total_channels为nil,因为没有发回第三个参数。
那么redis所说的这个“多批回复”在哪里呢?