SFSEventType ENUM and Example Programs (com.smartfoxserver.v2.core.SFSEventType)
SFSEventType
An Enum which consists the events which are raised and handled by smartfoxserver some of those are.
| Sno | EventType | Description | 
| 1 | SERVER_READY | The event is fired by SmartFox when the server engine has completed the boot phase. | 
| 2 | USER_LOGIN | The event is fired when a User sends a login request. | 
| 3 | USER_JOIN_ZONE | The event is fired after a successful User login. | 
| 4 | USER_JOIN_ROOM | The event is fired after a User has joined a Room. | 
| 5 | ROOM_VARIABLES_UPDATE | This event is fired when a one or more Room Variables are set. | 
| 6 | USER_LEAVE_ROOM | The event is fired after a User has left a Room. | 
| 7 | USER_DISCONNECT | The event is fired after a User disconnects or is disconnected. | 
| 8 | PUBLIC_MESSAGE | This event is fired when a public message is sent by a client. | 
| 9 | PRIVATE_MESSAGE | This event is fired when a private message is sent by a client. | 
| 10 | USER_RECONNECTION_SUCCESS | The event is fired when the SRS (smart reconnection system) option is turned on and a User was successfully reconnected. | 
Note:-
- All these Events are related to server related, means these event are handled at server side only where as client's will fire these type of requests
- In order to handle these events in our code/program we need to register corresponding handler class for the events. (means we need to associate a class when that type of event fired/occurred).
- Through method addEventHandler() of SFSExtension we can
                  register the events like 
 addEventHandler(SFSEventType.USER_LOGIN, MyLoginEventHandler.class).
 addEventHandler(SFSEventType.USER_JOIN_ZONE, MyZoneJoinEventHandler.class).
- In the above addEventHandler() signatures indicates whenever USER_LOGIN request arrived from client then "MyLoginEventHandler" will be fired similarly the other request also.
- In order to handle these events the java class must be a subclass of "BaseServerEventHandler"
- In the BaseServerEventHandler a method named public void handleServerEvent(ISFSEvent event) will be fired when event fired.
- Most of the Events will consist the parameters, these parameters will attain the information of client request.
- If the USER_LOGIN event fired what we need is "username","password" etc.. these data are came as parameter, those can be fetched using handleServerEvent(ISFSEvent event).
Sample Code Snippets:-
Registering Events With HandlerClasses
For the sake of less code lines I am using Singleclass (MyEventHandler) to handle all events.
- addEventHandler(SFSEventType.USER_LOGIN, MyEventtHandler.class);
- addEventHandler(SFSEventType.USER_LOGIN, MyEventHandler.class);
- addEventHandler(SFSEventType.USER_JOIN_ZONE, MyEventHandler.class);
MyEventHandler.java snippet
public class MyEventHandler extends BaseServerEventHandler {
public void handleServerEvent(ISFSEvent event) throws SFSException {
    SFSEventType eventtype = event.getType();
    System.out.println("Event Fired "+eventtype+"\t time"+new Date());
  }
}
              MyEventHandler.java SNIPPET WITH PARAMETERS CONCEPT
public class MyEventHandler extends BaseServerEventHandler {
    public void handleServerEvent(ISFSEvent event) throws SFSException {
      SFSEventType eventtype = event.getType();
        System.out.println("Event Fired "+eventtype+"\t time"+new Date());
        switch(eventtype){
        case SFSEventType.USER_LOGIN:
          User user = (User)event.getParameter(SFSEventParam.USER);
          String loginname = (String) event.getParameter(SFSEventParam.LOGIN_NAME);
          String password = (String) event.getParameter(SFSEventParam.LOGIN_PASSWORD);
          System.out.println(eventype +" Request Arrived From User "+user.getName()+"\t With LOGIN_NAME "+loginname+"\t password "+password);
          break;
        case SFSEventType.USER_DISCONNECT:
          user = (User)event.getParameter(SFSEventParam.USER);
          System.out.println(eventype +" Request Arrived From User "+user.getName());
          break;
        case SFSEventType.USER_JOIN_ZONE:
          user = (User)event.getParameter(SFSEventParam.USER);
          System.out.println(eventype +" Request Arrived From User "+user.getName());
          break;
        }
    }
}
              
            
        