iohao / ioGame

无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景; 通过 ioGame 你可以很容易的搭建出一个集群无中心节点、集群自动化、分布式的网络服务器;FXGL、Unity、UE、Cocos Creator、Godot、Netty、Protobuf、webSocket、tcp、socket;java Netty 游戏服务器框架; Java Netty Game Server.
http://game.iohao.com
GNU Affero General Public License v3.0
920 stars 205 forks source link

连接时出现 "brokerClientProxy" is null #281

Closed MengLiuLei closed 6 months ago

MengLiuLei commented 6 months ago

问题1: 我在Issues中看了一下相关问题,好像未解答我的疑惑,所以又发了一个Issues。 首先我使用客户端来连接并且调用的时候是没有问题的

   static class LoginTwo extends AbstractInputCommandRegion {
        @Override
        public void initInputCommand() {
            inputCommandCreate.cmd = DemoCmdForSpring.cmd;

            ofCommand(DemoCmdForSpring.login).setTitle("login").setRequestData(() -> {
                DemoUserInfo userInfo = new DemoUserInfo();
                userInfo.setPhone("2");
                return userInfo;
            }).callback(result -> {
                DemoCmdForSpring value = result.getValue(DemoCmdForSpring.class);
                log.info("value : {}", value);
            });
            TaskKit.runOnceSecond(() -> {
                // 执行 here 请求
                ofRequestCommand(DemoCmdForSpring.login).execute();
            });

        }
    }

这样没有问题,但是我的前端同事,下载了u3d的示例,然后来连接我,后台就会出现 image image 我游戏服务端使用的是spring版本的。u3d那边会报错 The WebSocket request or response contained unsupported header(s). 问题2: // 游戏对外服端口 int port = 10100;

    // spring 逻辑服
    var demoLogicServer = new DemoSpringLogicServer();

    // 启动 对外服、网关服、逻辑服; 并生成游戏业务文档
    NettySimpleHelper.run(port, List.of(demoLogicServer));

在启动的时候定义了一个port,仿佛这个端口不能使用,这个端口是http的端口吗?而socket的端口我看是IoGameGlobalConfig.brokerPort这个。那这个在启动时候定义的port的作用是什么呢?

iohao commented 6 months ago

// 启动 对外服、网关服、逻辑服; 并生成游戏业务文档 NettySimpleHelper.run(port, List.of(demoLogicServer));

这里的 port 指的是 游戏对外服端口(与真实玩家建立连接的端口)。方法上有相关注释,可以看下。