Method: Faye::Server#subscribe
- Defined in:
- lib/faye/protocol/server.rb
#subscribe(message, local = false, &callback) ⇒ Object
MUST contain * clientId
* subscription
MAY contain * ext
* id
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 |
# File 'lib/faye/protocol/server.rb', line 246 def subscribe(, local = false, &callback) response = make_response() client_id = ['clientId'] subscription = [['subscription']].flatten @engine.client_exists(client_id) do |exists| response['error'] = Error.client_unknown(client_id) unless exists response['error'] = Error.parameter_missing('clientId') if client_id.nil? response['error'] = Error.parameter_missing('subscription') if ['subscription'].nil? response['subscription'] = ['subscription'] || [] subscription.each do |channel| next if response['error'] response['error'] = Error.channel_forbidden(channel) unless local or Channel.subscribable?(channel) response['error'] = Error.channel_invalid(channel) unless Channel.valid?(channel) next if response['error'] @engine.subscribe(client_id, channel) end response['successful'] = response['error'].nil? callback.call(response) end end |