zoukankan      html  css  js  c++  java
  • 关于网页游戏断线重连的思路和demo求助

    http://bbs.9ria.com/thread-146997-1-1.html

    ——————————————————————————————————————————————————

    1:俺有什么方法可以获得到玩家当前是否已经断线.
    心跳包,客户端每秒向服务器发一个带有时间戳的包,服务器连续4秒收不到包则判断玩家断开

    2:断线之后,我弹出tips告诉玩家他已经断线了,怎么样控制玩家当前对手继续进行游戏.
    需要看是什么样的游戏
    如果是斗地主三国杀这类限时回合游戏,那么强制用AI对掉线玩家做出一步操作
    如果是长局即时游戏,可能需要服务器发送信息给所有人,暂停游戏以等某个人(WC3思路)
    如果是短局即时游戏,允许其它所有人继续游戏,但掉线时间一旦稍长则踢出掉线者(CS思路)

    3:断线之后无法连接到服务器,我需要用什么方法去侦听玩家的网络是否连接上了.
    断线之后重新用socket连接,连接成功后用客户端之前缓存的房间号向服务器发送要重连的信息

    4:玩家网络连接上了,我发送信息后台告诉后台连接上了并请求数据,后台数据过来之后怎么样继续游戏?因为断线时间是多久谁也无法确定呢.
    几种办法,对三国杀一类棋牌回合游戏,服务器将当前所有玩家状态、出牌一次性发送给客户端,这个数据量并不大(CS因为信息量不大也是这个思路)
    如果是更大的即时游戏,客户端要求重连时声明自己最后一次收到信息的时间戳
    服务器缓存若干秒前的数据,将从上述时间戳开始,到当前时间戳为止的数据一次性发出,客户端收到后一次性执行或者加速执行(WC3的思路)

    5:假如玩家一直断线挂不上,我怎么办呢?
    踢出该玩家。

    6:问题太多了,求详细思路,有demo最好,
    开什么玩笑,这个是相当大的东西
    sfs(smart fox server)等第三方开源引擎就是最好demo,而且注释全面
    楼主有这个想法可以直接下载

    7:有木有在QQ,英雄联盟做过这些的大神啊...
    有在腾讯的,没有在QQ的,
    此外英雄联盟是外国游戏,腾讯只是代理

    8:求指导,每次俺发问题都花光所有积蓄,每次回答的人基本看不到,求指导..感激不尽呢.
    所谓花光积蓄,6个问题一共30两,合一个问题5两,等于平均价格。
    对复杂项目求原文件本身就得不到有效回复
    将很多问题一起问也不是好办法,对回答者来说一次解决这么多太麻烦了。此外一问答不上出于面子未必来凑这个热闹。
    此外正是这个各种求的态度,以及随口的感谢不尽万分感谢一亿分感谢或者十亿分感谢让回答者感觉没什么答的价值。楼主恰当的做法是先自行进行尝试,写一点自己的东西出来,在开发过程中碰到具体问题再有针对性地进行提问,而不是上述很泛的,从项目一开始就问到很往后的位置。

  • 相关阅读:
    家长如何助力孩子适应小学生活
    一年级线上家长会
    gdb常用调试命令
    二叉树-后序遍历
    机器人
    Oracle创建只读账号的详细步骤
    ORACLE RAC日常运维-调整RAC+DG环境redo大小
    Redis 延迟分析
    oracle dataguard 重启步骤
    catalog start with + switch database to copy的妙用
  • 原文地址:https://www.cnblogs.com/cuizhf/p/5537870.html
Copyright © 2011-2022 走看看