faye (배포판에 포함 된 채팅 예제)를 사용하여 개념 증명 (chat-proof) 개념을 작성하려고합니다.faye ruby 서버를 사용하여 가입 응답에 사용자 정의 필드 추가
개념 증명에서 클라이언트가 채널을 구독 할 때 채팅 채널의 전체 내역을 보내려고합니다. 내 생각은 구독 응답 메시지에서 사용자 지정 필드를 사용하여 구현하는 것이 었습니다.
bayeux protocol definition을 확인한 후 가입 응답 메시지에 '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 클라이언트가 일부 필드를 무시하지 않도록).