コード例 #1
0
ファイル: ScorpionNetLib.cs プロジェクト: tuita520/u3dmmorpg
        protected void DispatchPublishMessage(PublishMessageRecievedEvent evt)
        {
            Action <PublishMessageRecievedEvent> action;

            if (mServiceDispatcher.TryGetValue(evt.Message.ServiceType, out action))
            {
                action(evt);
            }
            //StartCoroutine(DispatchPublishMessageCoroutine(evt));
        }
コード例 #2
0
ファイル: ScorpionNetLib.cs プロジェクト: tuita520/u3dmmorpg
 /// <summary>
 /// 因为所有CS的包的返回值是在Coroutine中处理的,所以如果直接处理SC的包,会导致包的顺序错乱
 /// 把SC的包延迟到下一帧,也在Coroutine中处理,可以在一定程度上避免SC的包比CS的返回值处理的早的问题
 /// 实际上如果出现 CSC 的情况,处理的顺序会是 CCS, 所以编码的时候,不能太依赖不同类型包的顺序
 /// </summary>
 /// <param name="evt"></param>
 /// <returns></returns>
 private IEnumerator DispatchPublishMessageCoroutine(PublishMessageRecievedEvent evt)
 {
     yield return(new WaitForEndOfFrame());
 }