2009-04-30 4 views
1

Smack API를 사용하여 Java에서 XMPP 클라이언트를 작성하고 있습니다. XMPP Smack API RosterListener + 데이터베이스 변경

나는 각 사용자에 대한 명단 리스너를 등록하고, 헤로인 API는 명단 추가를 통지 할 때마다 ...

public void entriesAdded(Collection arg0) {} 

... 호출합니다.

데이터베이스가 변경되었지만 Smack API의 createEntry() 메소드를 통해이 청취자가 해제되는지 여부를 아는 사람이 있습니까?

기본적으로 XMPP 클라이언트를 웹 사이트에 연결하고 싶습니다. 누군가를 웹 사이트 친구 목록에 추가하면 사이트에서 클라이언트에게 알리고 싶습니다. 소켓을 설정하거나 PHP를 사용하여 XMPP 서버에 로그인하는 대신 데이터베이스를 수정하는 것이 효과적 일 것을 기대하고있었습니다.

클라이언트가 끊임없이 데이터베이스를 폴링하여 변경 사항을 처리하지 않으면이를 처리 할 수 ​​있습니까?

답변

0

데이터베이스를 변경하는 것은 클라이언트 라이브러리이므로 Smack과 직접 관련이 없습니다. 데이터베이스가 없습니다. 데이터베이스는 서버에 의해 사용 및 액세스되며 서버에 따라 db가 변경 될 때 서버가 메시지를 게시 할 수있는 기능이있을 수 있습니다. 어떤 xmpp 서버에 실제로이 기능이 있는지 나는 모른다.

사용중인 서버의 기능을 확인하고 서버 자체의 확장 기능을 사용하여 명부 항목을 추가해야합니다. 데이터베이스를 직접 변경하는 것은 이동하는 것처럼 들리지는 않습니다. XMPP 서버와 데이터베이스가 동기화되지 않을 가능성이 높기 때문입니다.

데이터베이스를 폴링하는 클라이언트의 경우 클라이언트가 XMPP 서버 및 잠재적으로 웹 서버에서 사용되고있는 경우 데이터베이스에 직접 액세스 할 수있는 좋은 생각처럼 들리지 않습니다.