Let me see if understand the shared roster thing, i have configured a shared roster where @all@ my users are automatically added when they register (@all@), if i have user1 and user2 in this shared roster, and user 3 registers to my service he's automatically added to user1 roster and user2 roster, correct me please if i understood it the wrong way.
The thing is i have a shared roster, and i have users into it, but users can't see each other's name unless i add them using add_rosteritem command, in this case when i get user roster i should get only people added to his roster, but why my chat client gets the user roster plus the main shared roster i defined for @all@? can i understand how does it work? and how can i force ejabberd to return only the user roster itself and not the shared one too, because if i had 5000 users in the big roster then i have to retrieve them plus their images when getting any user's roster, which is a load on the server at some poitnt..
Can anyone explain how rosters work exactly? and what shall i do to get only user's specific roster not all people in the main roster?
mod_roster implements static,
mod_roster implements static, user-controlled, roster elements. That's the roster elements you modify with add_rosteritem and other commands.
mod_shared_roster implements dynamic, virtual, admin-controlled roster elements.
When a client logins, he gets both the roster elements provided by mod_roster and the elements provided by mod_shared_roster.
The thing is i have a shared roster, and i have users into it, but users can't see each other's name
Login to one of those accounts, edit his vCard, and set in the Nickname field his "name". When other users login, and mod_shared_roster prepares teh roster elements, that module will try to get the contact nickname.
why my chat client gets the user roster plus the main shared roster i defined for @all@?
Because that's how the modules work.
how can i force ejabberd to return only the user roster itself and not the shared one too
Delete that shared roster group in the WebAdmin.