重新连接HRC+ SmartFoxServer 2X

重新连接HRC +

由于SmartFoxServer 2X版本2.5(及更高版本)引入了高弹性连接系统(HRC +)的改进版本,使得玩家可以在突然断开连接后重新加入服务器,而不会丢失其当前状态。

在本文中,我们将讨论HRC +可以节省大量开发工作的方式,技术方面的做法以及如何配置和测试。
为什么我断开连线?

在本地网络开发和测试时,意外的断开连接是非常罕见的事情,但是当我们终于上网时,可能会发生几个可能会影响游戏连接的恶作剧。

连接在没有通知的情况下丢弃的主要原因是交通拥堵。播放器连接通常通过几十个网络节点到达目的地,并且这些链接中的每一个都可能是潜在的故障点。事实上,如果这些路由器和网关中的任何一个都被流量压倒了,它们可能会响应太慢,被迫丢弃数据包或重置,从而导致失速并最终断开连接。

如果我们添加混合WIFI和移动连接,场景变得更加细腻,因为信号强度的下降可能导致与游戏服务器的突然断开。

所有这些情况主要在操作系统的TCP堆栈中处于低级别,TCP堆栈又会在应用程序级别调度其他程序可以做出的响应。 SmartFoxServer 2X在这些方面也不例外,它在很大程度上取决于那些低级别的通知。

在这篇文章的后面,我们将看到如果某些事件没有及时解决,可能会发生什么。
»HRC +救援

HRC +是SmartFoxServer 2X提供的独特功能,可帮助构建更强大的多用户游戏,让玩家透明地返回游戏而不会失去其状态。

下图说明当播放器突然断开与服务器的连接时会发生什么:
这里写图片描述
从左侧开始,我们有三个用户连接到SFS2X,所有玩家一起玩在同一个区域中的玩家A,B,C。突然用户B失去连接,服务器上的Player对象被冻结,所有发送给他的消息都存储在队列中。

同时,客户端API正在尝试建立一个新的连接,而其他玩家可以继续他们的游戏,知道用户B试图跳回来。

在图的右侧,玩家B终于重新连接。新的会话与旧的Player对象链接,客户端被更新为所有排队的消息,其他玩家被通知B已经回来了。令人兴奋的部分是,在所有这些阶段,游戏流程不会中断,并且重新连接的所有复杂性都从开发人员隐藏起来。
»可能会出错

并不是所有的断开连接都相等。断断续续可能存在一段时间的少数情况,不能触发重连系统。

我们将文档的整个部分专用于Ghost Connections的问题,这是我们调用“半封闭”TCP连接的方式。没有太多的细节,TCP协议采用多个消息交换来断开客户端和服务器。在网络突然不可用的情况下,无法完成此交换,并且TCP连接可以在一段时间内保持在“等待”状态。

这种情况的典型原因是从计算机拉出网络电缆或WIFI接口或移动连接中的信号突然丢失。在所有这些情况下,最终可能会出现一个ghost连接,TCP连接仍然在等待关闭操作完成。

为何HRC +功能如此相关?这是至关重要的,因为在此状态下的TCP套接字将不会在应用程序级别通知任何断开连接事件,因此SmartFoxServer将不会意识到此新条件。最终,TCP超时或SmartFox空闲套接字超时将触发(取决于更早的启动),并且将断开连接事件。
不要拔掉电源
»正确的断开连接测试方法

反向拔除网络电缆或关闭WiFi连接不会产生可用于测试的突然断开连接。

事实上,您可以使用Netstat实用程序(Windows,Mac和Linux上可用)在拔下电缆之前和之后监视计算机的连接,并且您会惊讶地发现没有任何变化!

重要信息:请勿尝试通过拔出以太网电缆或关闭WIFI连接来测试重新连接系统。两个操作都不会终止您当前的套接字连接,因此断开事件将永远不会被触发。

而是按照我们在下面部分链接的题为“连接阶段”的文章中提供的说明。
»进一步阅读

有关如何配置和测试HRC +的更多信息,请参见“开发基础”部分中的连接阶段。
为了进一步了解TCP / IP如何处理断开连接,您可以阅读此外部文章

翻译自http://docs2x.smartfoxserver.com/GettingStarted/reconnection-hrc-plus

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值