2012-11-29 2 views
1

레일 응용 프로그램에 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는 다릅니다. 동일한 네트워크에있는 컴퓨터이며 모두 동일한 채널에 가입되어 있습니다.

  1. B에 I 입력 데이터는, A가 데이터를 볼 수 있지만 내가 (DB에서 데이터를 받고있다) 페이지를 새로 고침 할 때까지 C는 데이터가 표시되지 않습니다.
  2. A에 데이터를 입력하면 다른 클라이언트에 게시되지 않습니다.
  3. 경우에만 C와 B는 오직 C 데이터를 볼 나와서, 그것이 B.

경우 A, B, 및 게시되지 구독하는 채널 C의 I 입력 데이터 C는 같은 컴퓨터에서 서로 다른 브라우저를 사용하기 때문에 위의 모든 경우가 작동합니다.

개발 모드에서 실행했고 WEBrick, Unicorn 및 Thin을 사용해 보았습니다.

어떤 도움

주시면 감사하겠습니다. 감사합니다. .

답변

1

문제를 해결하기 위해 "localhost"의 모든 인스턴스를 Faye가 실행되는 서버의 주소로 바꿨습니다. 여기에는 채널에 가입하는 클라이언트도 포함됩니다.

희망 하시겠습니까? 건배!

0

안녕하세요 Babak : 나는 또한 같은 종류의 문제에 직면하고 있습니다. nodejs + express + faye를 사용하고 있습니다. 그래서 나는 IP_ADDR 추가해야합니다 : '라인과 다른 컴퓨터에 그것이 각 구독에 포트, 클라이언트를 그래서`URI = URI.parse (': // localhost를 9292/페이 HTTP ')를 사용하고 있었다

var client = new Faye.Client('/faye',{ 
     endpoints:{ 
       websocket:'http:ws.chat-yummyfoods.rhcloud.com' 
       } 
     ,timeout: 20 
    }); 
client.disable('websocket'); 
console.log("client:"+client); 
var subscription=client.subscribe('/channel', function(message) { 
     console.log("Message:"+message.text); 
     $('#messages').append('<p>'+message.text+'</p>'); 
    }); 
subscription.then(function(){ 
     console.log('subscribe is active'); 
     alert('subscribe is active'); 
    }); 
+1

주요 faye 주소와 다른 ** localhost **에 액세스하려했습니다. 그들이 나의 서버'uri = URI.parse ('http : // SERVER_IP : 9292/faye')의 주소를 가리킴으로써 문제가 해결되었습니다. –

+0

나는 또한 문제를 해결했습니다 다음을 통해이 문제를 해결하십시오 http://stackoverflow.com/questions/23650534/faye-is-not-available-on-client-browser-for-node-js/23662899#23662899 – Pulkit

관련 문제