<div class="wiki-content maincontent"><p>ActiveBlaze supports group membership using a GroupChannel - which can be created from a GroupChannelFactory.<br clear="none">
You have to explicitly say which group you want to join/leave - and you can join multiple groups.<br clear="none">
Each GroupChannel has both a globally unique id and a name.</p>

<structured-macro ac:macro-id="a74c7a79-dbfb-4d45-befd-60b5910478b9" ac:name="code" ac:schema-version="1"><plain-text-body>

import org.apache.activeblaze.group.*;

...
BlazeGroupChannelFactory factory = new BlazeGroupChannelFactory();

BlazeGroupChannel channel = factory.createGroupChannel("My Channel");
//join a group
channel.addToGroup("test");
channel.start();

//listen for other members

channel.addMemberChangedListener(new MemberChangedListener(){

     public void memberStarted(Member member) {
         System.out.println("Member started");
     }

     public void memberStopped(Member member) {
         System.out.println("Member stopped");
     }
            
 });
</plain-text-body></structured-macro></div>

