0

我正在使用 SmartFox 服务器并想检查服务器是否准备好接受请求。根据我在可用文档和谷歌中的搜索。通过在服务器上使用事件处理程序来说明哪种事件的方法需要处理或触发该事件时需要执行的某个代码块..可以使用事件SERVER_READY..但是我如何向客户端发送响应是我所坚持的..this是到目前为止的代码..

在我的扩展中..

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中...

4

1 回答 1

1


让我们考虑这些

  1. SERVER_READY 在每个扩展的 Smartfox 的整个生命周期中只会触发一次,因此您不能从那里向客户端触发任何事件。
  2. 客户端库的 SmartFox 类具有以下方法和事件来确定服务器状态

     a) isConnected()
     b) isConnecting()
     c) SFSEvent.CONNECTION
     d) SFSEvent.CONNECTION_LOST
     e) SFSEvent.LOGIN
     f) SFSEvent.LOGIN_ERROR
    
  3. 此处方法 a) b) 将指定 smartfox 服务器(不是您的扩展服务器)是否已连接。
  4. c),d) 事件将在 sfs.connect(ip,port); 被客户解雇。
  5. 当客户端需要连接到您的加入时,它会向您的区域发送一个请求作为 LoginRequest(username,password,zonename)

  6. 如果您的区域未处于活动状态或没有具有该名称的区域,smartfox 会自动触发 SFSEVENT.Login_error 将触发。

  7. 如果您的区域处于活动状态,那么您的区域扩展的 SFSEventType.USER_LOGIN 将根据您的编码客户端触发,将获得 LOGIN/LOGIN_ERROR 事件之一。

如果您需要示例代码,那么我将发送。请使用 smartfox 文档。

于 2014-05-18T16:17:27.950 回答