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;
}
}
}