레일 응용 프로그램에 faye 구현이 있습니다. 게시 방법은 두 브라우저가 동일한 컴퓨터에있을 때 올바르게 작동합니다. 다른 컴퓨터의 다른 브라우저에서 응용 프로그램에 액세스하면 클라이언트에서 서버로만 작동하고 다른 클라이언트에서는 게시하지 않습니다. 또한 게시 이벤트가 서버의 브라우저에 변경 사항이있을 때 클라이언트로 푸시되지 않습니다.네트워크의 다른 컴퓨터에서 브라우저를 사용할 때 Faye가 게시하지 않습니다.
def publish(channel, data)
message = {
:channel => channel,
:data => data,
:ext => {:faye_token => FAYE_OUTGOING_AUTH_TOKEN}
}
uri = URI.parse('http://localhost:9292/faye')
Net::HTTP.post_form(uri, :message => message.to_json)
end
명령 페이 실행 :
컨트롤러 코드를 게시
rackup faye.ru -s thin -E production -d
예 :
A : 서버, B : 클라이언트 1, C : 클라이언트 2
AB와 C는 다릅니다. 동일한 네트워크에있는 컴퓨터이며 모두 동일한 채널에 가입되어 있습니다.
- B에 I 입력 데이터는, A가 데이터를 볼 수 있지만 내가 (DB에서 데이터를 받고있다) 페이지를 새로 고침 할 때까지 C는 데이터가 표시되지 않습니다.
- A에 데이터를 입력하면 다른 클라이언트에 게시되지 않습니다.
- 경우에만 C와 B는 오직 C 데이터를 볼 나와서, 그것이 B.
경우 A, B, 및 게시되지 구독하는 채널 C의 I 입력 데이터 C는 같은 컴퓨터에서 서로 다른 브라우저를 사용하기 때문에 위의 모든 경우가 작동합니다.
개발 모드에서 실행했고 WEBrick, Unicorn 및 Thin을 사용해 보았습니다.
어떤 도움
주시면 감사하겠습니다. 감사합니다. .
주요 faye 주소와 다른 ** localhost **에 액세스하려했습니다. 그들이 나의 서버'uri = URI.parse ('http : // SERVER_IP : 9292/faye')의 주소를 가리킴으로써 문제가 해결되었습니다. –
나는 또한 문제를 해결했습니다 다음을 통해이 문제를 해결하십시오 http://stackoverflow.com/questions/23650534/faye-is-not-available-on-client-browser-for-node-js/23662899#23662899 – Pulkit