Skip to content

3944Realms/DG_LAB_DEVELOP

Repository files navigation

如何启动服务器&客户端;

启动客户端:

public class Client {
    public static void main(String[] args) {
        ClientPowerBoxSharedData sharedData = new ClientPowerBoxSharedData();
        PowerBoxWSClient powerBoxWSClient = new PowerBoxWSClient(sharedData, new WebSocketClientRole("Cl"));
        //connect to other address and port, do such that: 
        //new PowerBoxWSClient(sharedData, new WebSocketServerRole("IWebsocketServer"), "<Server Address>", <port>)
        DGPBClientManager dgpbClientManager = new DGPBClientManager(powerBoxWSClient);
        //以客户端管理器方式接管客户端进程启动
        dgpbClientManager.start();
    }
}

启动服务器:

public class Server {
    public static void main(String[] args) {
        //服务器运行时所向外暴露的共享数据
        ServerPowerBoxSharedData sharedData = new ServerPowerBoxSharedData();
        PowerBoxWSServer powerBoxWSServer = new PowerBoxWSServer(sharedData, new WebSocketServerRole("IWebsocketServer"));
        //start on other port, like 10000, do such that:
        //new PowerBoxWSServer(sharedData, new WebSocketServerRole("IWebsocketServer"), 10000)
        //你也可以以直接让服务器进程启动
        powerBoxWSServer.start();
    }
}

解释

要通过此框架来实现服务器和客户端启动,首先得知道构成一个Client或Server封装类构造器的一些参数:
建议是使用对应xxxServer(或Client)下的Builder类来获取对应封装类的实例;

public class Server {
    public static void main(String[] args) {
        ServerPowerBoxSharedData sharedData = new ServerPowerBoxSharedData();
        PowerBoxWSServer powerBoxWSServer = PowerBoxWSServer.Builder.getBuilder()
                //设置共享数据
                .sharedData(sharedData)
                //设置角色,用于信息验证
                .role(new WebSocketServerRole("IWebsocketServer"))
                //设置服务器进程运行端口
                .port(9000)
                .build();
        //将服务器进程托管给相应的管理器
        DGPBServerManager dgpbServerManager = new DGPBServerManager(powerBoxWSServer);
        //启动
        powerBoxWSServer.start();
    }
}

更多有关内容请阅读源代码

About

DG_LAB 开发包

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages