2012-10-04 3 views
0

채팅 서버가 있습니다. 그리고 클라이언트가 구독 한 후에는 구독 한 대화방에 대한 기록이 있는지 DB를 조사하고 싶습니다.node.js, faye (bayeux) - 구독 이벤트 후

문제는 "콜백 (메시지) 반환"을해야하는 확장 프로그램의 "구독"이벤트 만 잡을 수 있다는 것입니다. 메시지를 반환합니다. 여기에 역사를 쓰면 클라이언트가 실제로 구독하지 않기 때문에 클라이언트에 아무것도 게시되지 않습니다.

클라이언트가 준비되면 언제 알 수 있습니까? 또는 성공적인 구독에서 발생하는 일부 이벤트?

감사합니다.

답변

2

당신은 당신이 구독에 실패 할 때 성공적으로 가입 할 때 발생합니다 가입하고 다른 만든 후 콜백을 첨부 할 수 있습니다 : 그것은 조금 묻혀 있지만 이것은 페이의 mainpage에 설명되어 있습니다

var http = require('http'); 
var faye = require('faye'); 

var faye_server = new faye.NodeAdapter({mount: '/faye', timeout: 120}); 

faye_server.listen(8089); 

var subscription = faye_server.getClient().subscribe('/testing', function(message){console.log(message);}); 

subscription.callback(function(){console.log('Subscription successful and ready to use!');}); 

subscription.errback(function(){console.log('ERROR: Subscription failed!');}); 

. . .

노드 서버, 노드 클라이언트 또는 브라우저 클라이언트에서 테스트 해본 결과 작동합니다.

내 클라이언트가 제대로 작동하는지 확인하기 위해 수행 한 작업은 다음과 같습니다. 클라이언트를 만든 다음 가비지 채널 이름을 등록하려고합니다. 구독이 시작되거나 실패하거나 시간이 초과되면 (내 주변에 5 초 시간 만 대기) 클라이언트의 공개 성공으로 간주합니다. 그것은 약간의 방법에 관한 라운드지만, 그것은 나를 위해 매우 잘 작동하고있어 faye는 이전 예제처럼 콜백과 오류 복구를 사용하여 꽤 깨끗하게 만듭니다.

이제 모든 것이 클라이언트 측에서 이루어 지지만 서버 측에서는 훨씬 편리해집니다 : http://faye.jcoglan.com/node/monitoring.html. 여기에서 확장 기능을 사용하고 특정 클라이언트의 이벤트를 구독하면 좋은 결과를 얻으실 수 있습니다.

희망하는 사람