Я пытаюсь написать концептуальное приложение для чата, используя faye (пример чата, включенный в дистрибутив).
В моем доказательстве концепции я хочу отправить полную историю канала чата, когда клиент подписывается на канал. Моя текущая идея заключалась в том, чтобы реализовать это с помощью настраиваемого поля в сообщении ответа на подписку.
После проверки определения протокола Bayeux кажется, что поле 'ext' допускается в ответном сообщении подписки.
Но я не смог ничего добавить в это поле ext, используя расширение сервера.
class ServerLog
def incoming(message, callback)
puts " msg: #{message}"
unless message['channel'] == '/meta/subscribe'
return callback.call(message)
end
# the following line changes absolutely nothing
message['ext'] = 'foo'
callback.call(message)
end
end
App.add_extension(ServerLog.new)
Хотя настройка поля ext не приводит к сбою сервера, она абсолютно не влияет на ответное сообщение о подписке. Я даже проверил с помощью Wireshark (просто чтобы убедиться, что клиент js не игнорирует некоторые поля).