一个游戏服务,开了多个 businessworker 后,不能保证同一个房间的人都在一个 businessworker 的进程内存中。
以及分布式部署后,没法保证同一个房间的人进入同一个服务器的同一个 businessworker。
同一个房间的游戏玩家如果没有进入同一个 BusinuessWorker,操作内存数据的时候,会读取不到其他玩家的相关游戏状态信心。
这里大家说怎么处理的呢?
有一种东东叫 gatewayWorker 分布式 通讯进程模型,是群主打造了2年半的。 https://www.workerman.net/doc/gateway-worker/
第三方或主动通讯推送 的东东叫 gatewayClientSDk ,也是群主打篮球时候顺便写的 https://github.com/walkor/GatewayClient
小黑子,开庭记得带上群主!!!
鱼你太美
6
他这个可以可以控制的,不一定用gatewayWorker去处理,用gatewayworker 一些变量就需要中间存储了。他可以在真正开始进入房间前所有人在一个房间等待,这个没有长链接的房间可以用http,或者其他方式维护,当开始进入房间的时候最快的那个把房间组id和某个BusinuessWorker绑定,后续同持有相同房间组id的用户进入真正的房间时都可以拿到相同的BusinuessWorker ip,可以在同一个服务器上的房间进行业务处理。这种按照房间组处理的业务还是尽量都在一个服务器上会好一点吧。用gateway的话,多少回引入一些不必要的存储消耗。所有人都在同一个房间完的话,用gateway我觉得挺好,小房间不太推荐
有一种东东叫 gatewayWorker 分布式 通讯进程模型,是群主打造了2年半的。
https://www.workerman.net/doc/gateway-worker/
第三方或主动通讯推送 的东东叫 gatewayClientSDk ,也是群主打篮球时候顺便写的
https://github.com/walkor/GatewayClient
小黑子,开庭记得带上群主!!!
鱼你太美
6
他这个可以可以控制的,不一定用gatewayWorker去处理,用gatewayworker 一些变量就需要中间存储了。他可以在真正开始进入房间前所有人在一个房间等待,这个没有长链接的房间可以用http,或者其他方式维护,当开始进入房间的时候最快的那个把房间组id和某个BusinuessWorker绑定,后续同持有相同房间组id的用户进入真正的房间时都可以拿到相同的BusinuessWorker ip,可以在同一个服务器上的房间进行业务处理。这种按照房间组处理的业务还是尽量都在一个服务器上会好一点吧。用gateway的话,多少回引入一些不必要的存储消耗。所有人都在同一个房间完的话,用gateway我觉得挺好,小房间不太推荐