RillServer icon indicating copy to clipboard operation
RillServer copied to clipboard

单房间多用户(多luaservice) 如何处理全局通知问题 会不会存在消息分发延迟带来的不同步

Open Android-Dongyf opened this issue 6 years ago • 2 comments

前提: 在您的版本上修改房间创建模式支持pool机制,且房间ID有配置生成, 实现出2中房间类型,一种是每个玩家一个房间,另一种是一个房间可以容纳多个玩家 问题: 当一个房间用户过多,对于房间全局通知的信息,这个该如何处理更高效,麻烦指点一二多谢

Android-Dongyf avatar Jun 22 '19 06:06 Android-Dongyf

你是说 触发 事件的类似的通知还是 消息的通知 如果是前者 可以内部实现个 事件管理器 如果是后者 我建议用 skynet 的 https://github.com/cloudwu/skynet/wiki/CriticalSection

cloudfreexiao avatar Jun 22 '19 14:06 cloudfreexiao

消息通知 目前方案 目前看代码实现都是循环发送给每个agent,然后再有agent的socket发送给客户端 问题 当agent无限增大时,由于底层处理消息都是多线程处理消息队列,当agent数量级大于线程数时,是否会出现客户端收到消息的时间不一致,假如消息是一些同步状态的信息,这样会造成客户端状态不一致等现象 测试 目前我测试1000+并发,客户端使用python写的,测试log发现打印出现了不一致的现象,目前没有继续深入下去,没去仔细分析这个问题是服务端导致还是客户端导致 思考 假设agent无限增加,个人认为客户端不同步的现象势必会出现,目前我还没有想到好的处理方式

Android-Dongyf avatar Jun 24 '19 09:06 Android-Dongyf