Gtalk と Facebook に接続できるチャット クライアントを開発しています。そのために DWR を使用しています。
ログインしたら、ユーザーのリストを作成する必要があります。クライアント側で私が持っている
function showUsersOnline() {
var cellFuncs = [ function(user) {
return '<i>'+user+'</i>';
} ];
LoginG.usersOnline( {
callback : function(users) {
dwr.util.removeAllRows('usersOnline');
dwr.util.addRows("usersOnline", users, cellFuncs, {
escapeHtml : false
});
サーバー側では、Smack Api を使用して名簿リストを取得しています (オンライン)
public void usersOnline() {
Roster roster = connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
System.out.println(roster.getEntryCount());
int count1 = 0;
int count2 = 0;
for (RosterEntry r : entries) {
String user = r.getUser();
Presence presence = roster.getPresence(user);
if (presence.getType() == Presence.Type.available) {
System.out.println(user + " is online");
count1++;
} else {
System.out.println(user + " is offline");
count2++;
}
データをJSONとして返す必要がありますか、それともDWRがコレクションを処理できる方法はありますか???