i trying create chat app. - installed openfire server in local machine - , added users through openfire server admin panel - trying display available users in android emulator. - able connected openfire server usign asmack lib. getting error on connection.getroster();.
connectionconfiguration config = new connectionconfiguration("10.42.0.3", 5222, "localhost"); connection = new xmppconnection(config); try { connection.connect(); log.d("smack ", " connected"); // list online contacts roster roster = connection.getroster(); collection<rosterentry> entries = roster.getentries(); log.d("trace", "entries.size()=" + entries.size()); (rosterentry e : entries) { log.d("presence", e.getuser() + "=" + roster.getpresence(e.getuser()).isavailable()); if (roster.getpresence(e.getuser()).isavailable()) { log.d("add", "name_key=" + e.getname() + " userjid_key=" + e.getuser()); //contacts.add(contact); } } } catch (xmppexception e){ log.e("xmppchatdemoactivity", "failed connect "+ connection.gethost()); log.e("xmppchatdemoactivity", e.tostring()); }
this code give me error on line connection.getroster(); not found.
here dependencies
compile filetree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:design:22.2.1' compile 'com.google.android.gms:play-services:8.3.0' compile "org.igniterealtime.smack:smack-java7:4.1.0" // optional xmpptcpconnection compile "org.igniterealtime.smack:smack-tcp:4.1.0" // optional xmpp-im (rfc 6121) support (roster, threaded chats, …) compile "org.igniterealtime.smack:smack-im:4.1.0" // optional xmpp extensions support compile "org.igniterealtime.smack:smack-extensions:4.1.0"
smack doesn't have such feature. can users list using rest api. install rest api plugin in server side plugin repository. in client side add rest api client,
maven :
<dependency> <groupid>org.igniterealtime</groupid> <artifactid>rest-api-client</artifactid> <version>1.1.3</version> </dependency>
gradle :
compile 'org.igniterealtime:rest-api-client:1.1.3'
example :
authenticationtoken token = new authenticationtoken("rest_api_token"); restapiclient client = new restapiclient("host", port, token); userentities entities = client.getusers(); // userentities have users list including admin.
** rest api token in server's rest api section.
Comments
Post a Comment