2012-09-18 2 views
2

Faye를 사용하면 handshake 또는 subscribe과 같은 다양한 이벤트를 모니터링 할 수 있습니다. 이러한 콜백 블록은 클라이언트 자체가 아닌 client_id 값만 제공됩니다. 예 :클라이언트 ID가 주어진 Faye 클라이언트를 얻으려면 어떻게해야합니까?

server = Faye::RackAdapter.new(mount: '/faye', timeout: 45) 

server.bind(:handshake) do |client_id| 
    puts "Received handshake from #{client_id}" 
end 

client_id으로 클라이언트에 액세스하려면 어떻게해야합니까? 또는 요청 헤더에 제공된 쿠키와 같이 핸드 쉐이크에서 더 많은 정보에 액세스하려면 어떻게해야합니까?

답변

6

내 원래의 질문은 Faye가 두 가지 관점에서 어떻게 작동하는지 이해하지 못하는 것에 근거한다고 생각합니다. 내 질문을 삭제하는 대신, 이와 비슷한 질문을 통해 다른 사람에게 대답 할 것입니다. (어떤 식 으로든 내 대답이 잘못 되었다면, 의견을 말하고 편집하십시오!)

먼저, Faye가 Bayeux 프로토콜과 관련하여 구현 된 방식으로 인해 연결된 클라이언트에 액세스 할 수 없습니다. 모든 통신은 채널 브로드 캐스트를 통해 이루어 지므로 채널을 청취하는 모든 연결은 전송되는 메시지를 수신합니다.

둘째, 질문에 붙여 넣은 코드는 monitoring입니다. 내가 정말로 찾고있는 것은 extension입니다.

내 원래의 질문에 따라 인증을 얻으려면 message['ext'] 값의 일부인 쿠키 값, 인증 토큰 등 어떤 인증 값이든 (확장 페이지의 예에 따라) 필요한 모든 값을 전달해야합니다.). 그런 다음 서버 측에서 /meta/handshake 채널의 메시지를 청취해야하며, 값의 경우에는 message['error']을 일부 값으로 설정해야합니다.

관련 문제