zoukankan      html  css  js  c++  java
  • 有价值文章收集(即时通信)

    即时游戏通信

    所有逻辑实际发生的时刻都在服务端,只有当数据发送到服务端时,事件才真正发生。
    客户端的操作应该是立即响应的,必须先行动,才发送数据。
    导致的结果是,客户端的事件发生时间和服务端是不同的。自己的行为会比服务端早,别人的行为会比服务端晚。由于具有时间差,客户端完成的行为可能会和服务端实际发生的行为不同。这时候就只能由服务端校正客户端,但只有在出现冲突时才需要校正,而不用校正所有的差异。
    当客户端必须从服务端获得数据才能继续逻辑的时候,自然只能等待服务端返回才会出现事件,但是服务端的事件会先发生。
    服务端发送的事件,客户端必须无条件接收,无论当时看起来是否合理。

    行走,应该认为是客户端在实际远程操作服务端,将自己的操作发送给它。因此必然是具有延迟的操作。而客户端的显示则是自己处理的。不同步将会影响其他的判断,但这是无法避免的。双方差异过大则校正。
    普通的攻击。只要客户端显示在范围内,CD时间已经到了,攻击动画就可以正常播放。但是由于具体的伤害值必须由服务端计算(随机),因此伤害数据和实际减血必须等服务端返回后才会发生。如果由于坐标问题服务端判断这个攻击不成立,将返回MISS。
    某些顺发技能可能无法做MISS处理,则需要先由服务器判断是否可行后再释放。可以先做动作,但是效果发生在判断完成前必须等待。
    打开宝箱是立即的操作,但是显示获得物体必须服务端判断。如果认为无法获得宝箱,显示空或者错误信息。
    触发陷阱,完全服务端判断,客户端只作显示。

  • 相关阅读:
    Vue 错误:Avoid mutating a prop directly
    插入排序
    Vue2.0实现ie的兼容
    mysql8.0遇到删除外键的错误
    c# 根据父节点id,找到所有的子节点数据
    SSH原理与运用(一):远程登录
    Java线程:Timer和TimerTask
    linux系统判断是否重启、关机、查询登录诊断分析简介
    CS架构和BS架构的区别
    yum提示another app is currently holding the yum lock;waiting for it to exit
  • 原文地址:https://www.cnblogs.com/axyz/p/2059598.html
Copyright © 2011-2022 走看看