网络游戏服务器中全局广播的优化

在网络游戏服务器中,有些通知,世界聊天等信息需要对全服进行广播,如果每条信息都立即进行全服连接遍历和发送,不是很合适。所以有必要对这个进行优化。

容器:

我们建立两个连接的列表。把一个列表称为未广播连接列表,另一个称为已广播连接列表。

我们建立两个广播信息的列表。一个称为全局广播信息列表,另一个称为当前广播信息列表。

信息发送:

在发送广播信息的地方,我们把信息直接加入到全局广播信息列表。

优化方法:

1- 广播信息触发逻辑:
定期检查全局广播信息列表和当前广播信息列表,如果全局列表不空且当前列表为空,则从全局列表取定量的待广播信息,放入当前广播信息列表。
2- 广播信息发送逻辑:
当前广播信息列表不为空时,从未广播连接列表中取数个连接,将当前广播信息列表中的信息从连接上发给客户端,然后把这些连接加入到已广播连接列表。
直到未广播连接列表为空,清空当前广播信息列表,交换未广播连接列表和已广播连接列表。

新连接到来:
根据需要,将他们加入到已广播连接列表和未广播连接列表。我是推荐加入到已广播连接列表。防止收到重复的广播信息。

这样优化之后,通过调整一次发送的广播信息的量,和每次广播的连接个数,就可以有效的降低广播对服务器的压力。

安达利,飞鸽传书,金牛头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值