Использование SFSEventType.SERVER_READY на сервере SmartFox
Я использую сервер SmartFox и хочу проверить, готов ли сервер принимать запросы или нет. Согласно моим поискам в доступной документации и google... способ сделать это с помощью обработчика событий на сервере, указывающего, какой тип события должен быть обработан, или определенный блок кода, который должен быть выполнен, когда это событие запущено. Событие SERVER_READY доступно для использования... но как я могу отправить ответ клиенту - вот что я застрял в этом это код до сих пор..
В моем расширении..
addEventHandler(SFSEventType.SERVER_READY, ServerReadyHandler.class );
И класс обработчика..
public class ServerReadyHandler extends BaseServerEventHandler{
MyExtension ade=null;
ISFSObject resp_obj=null;
@Override
public void handleServerEvent(ISFSEvent event) throws SFSException
{
ade=(AdminExtension) getParentExtension();
if(event.getType().equals(SFSEventType.SERVER_READY))
{
// response needs to be send to the client that server is ready..
}
}
}
моя клиентская часть находится в Android Java...
1 ответ
Давайте рассмотрим эти
- SERVER_READY будет срабатывать только один раз за весь жизненный цикл Smartfox для каждого расширения, поэтому вы не можете запустить любое событие для клиента оттуда.
Класс клиентской библиотеки SmartFox имеет следующие методы и события для определения состояния сервера
a) isConnected() b) isConnecting() c) SFSEvent.CONNECTION d) SFSEvent.CONNECTION_LOST e) SFSEvent.LOGIN f) SFSEvent.LOGIN_ERROR
- Здесь методы a) b) будут указывать, подключен ли сервер smartfox (не ваш сервер расширений) или нет.
- c), d) события будут срабатывать, когда когда-либо будет sfs.connect(ip,port); уволен с клиента.
Когда клиенту необходимо подключиться к вашему соединению, он отправляет запрос в вашу зону как LoginRequest (имя пользователя, пароль, имя зоны)
если ваша зона не активна или нет зоны с таким именем, smartfox автоматически запускает SFSEVENT.Login_error сработает.
если ваша зона активна, то SFSEventType.USER_LOGIN вашего расширения зоны будет запущено в соответствии с вашим клиентом кодирования, который получит одно из событий LOGIN/LOGIN_ERROR.
Если вам нужен пример кода, я пришлю. Пожалуйста, перейдите с документацией Smartfox.