2011-09-14 5 views
3

저는 Sencha Touch를 사용하여 Microsoft Lync 용 모바일 채팅 클라이언트를 작성하고 있습니다.Sencha Touch : 구현 폴링

서버 측에서 lyncwidget 코드 플렉스 프로젝트 (http://lyncwidget.codeplex.com)에서 JSONP 사용 가능 WCF 서비스를 사용하고 있습니다. 호출시 WCF 서비스는 대기열에 있던 모든 메시지를 반환합니다. JSON 데이터로 서버.

아이디어는 클라이언트가 새 메시지를 검색하기 위해 정기적으로 서비스를 폴링한다는 것입니다.

가능한 경우 내 저장소 프록시에서 폴링 동작을 직접 구현하고 싶습니다. 그래서 "ChatMessagesStore"에서.

깔끔한 방법으로 구현하는 방법에 대한 조언이 있으십니까?

감사합니다.

ps : 나는 Sencha Touch의 초보자입니다.

답변

2

Ext.data.ScriptTagProxy 클래스를 확장하는 것이 가장 좋습니다. 그런 다음 내부에 "pool-interval"이라는 속성이 있고 sync() 함수를 호출하는 메서드가 있습니다. 예 :

makeRequest(){ 
    this.sync(); 
    setTimeout("this.makeRequest()",pool-interval); 
}; 

당신은 여러에게 setInterval 전화와 당신이 상점의 이름을 변경하는 경우이를 변경할 필요 설정을 귀찮게하지 않았을 같은 프록시 여러 상점이있는 경우이 방법.

+1

makeRequest 자체를 호출하려고한다면'setInterval'보다는'setTimeout'을 사용해야 할 것입니다 ...? – Rom1

+0

좋은 지적! 방금 바뀌 었습니다. – ilija139

1

정기적으로 매장에서 sync()을 전화하면 어떨까요? 상점마다 3 초 동기화 할

setInterval("MyApp.stores.myStore.sync()", 3000); 

를 호출 예를 들어

.

모바일 응용 프로그램에서 폴링에 대한 간단한 설명 : 배터리가 미친 듯이 소모됩니다. 누구나 대안/대안에 대한 아이디어가 있습니까?

+0

동기화 방법이 맞춤인가요? 그것에 관한 문서를 찾을 수없는 것 같습니다. –

+0

아니요; 'Ext.data.Store'의'sync' 메소드 정의를보세요 – Rom1