真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

06-ET框架的前后端通信2-創(chuàng)新互聯(lián)

TIPS:
本系列貼僅用于博主學(xué)習(xí)ET框架的記錄

創(chuàng)新互聯(lián)專注于撫松企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)。撫松網(wǎng)站建設(shè)公司,為撫松等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

文章目錄
  • 前言
  • 一、IMessage是什么?
  • 二、使用步驟
    • 1.編寫proto消息體
    • 2.編寫C#代碼
    • 3.運行結(jié)果
  • 總結(jié)


前言

這篇文章記錄ET框架的第二種前后端通信:IMessage


一、IMessage是什么?

在ET框架中的前后端通信的IMessage類型的通信是不需要回復(fù)的一種消息請求方式。
例如某個玩家率先到達(dá)了某個等級的閾值,之后Server對客戶端下發(fā)一個消息,說:您率先到達(dá)90級。這種不需要響應(yīng)的消息就用IMessage來做。(應(yīng)該可以這么理解)

二、使用步驟 1.編寫proto消息體

在OuterMessage.proto文件中編寫代碼:

message C2S_TestMessage // IMessage
{
	string HelloByClient = 1;
}
message S2C_TestMessage // IMessage
{
	string HelloByServer = 1;
}

代碼命名規(guī)為:
C2S:代表是從Client to Server的一條消息,后面接著//IMessage則表明是一條普通消息,不需要回復(fù)。同理S2C也是一個道理。

C2S_TestMessage:這是從客戶端發(fā)送一條消息給服務(wù)器的一條消息。

S2C_TestMessage:這是從服務(wù)器主動下推一條消息給客戶端。

自定義的值則從1開始,但不能重復(fù)。最后保存文件回到Proto文件下雙擊bat文件會在代碼里生成對應(yīng)的代碼。

2.編寫C#代碼

(1)找到LoginHelper.cs文件下的Login方法開始編寫,先注釋掉原先的代碼:

代碼如下(示例):LoginHelper

using System;


namespace ET
{public static class LoginHelper
    {public static async ETTask Login(Scene zoneScene, string address, string account, string password)
        {Session session = null;//定義一個與服務(wù)器端所鏈接的session;用于通信
            try
            {session = zoneScene.GetComponent().Create(NetworkHelper.ToIPEndPoint(address));
                //客戶端發(fā)送一條普通消息給服務(wù)器
                session.Send(new C2S_TestMessage() {HelloByClient = "Hello server, i am client" });
                //這里消息發(fā)送完之后如果不等待一下,session就會立馬斷開,
                //這樣客戶端就收不到服務(wù)器端主動下推的一條消息了,
                //所以為了測試這里等待一秒后才斷開session
                await TimerComponent.Instance.WaitAsync(1000);
            }
            catch (Exception e)
            {session?.Dispose();//銷毀session斷開鏈接
                Console.WriteLine(e);
                throw;
            }
            finally
            {session?.Dispose();
            }

            await ETTask.CompletedTask;
        }
    }
}

(2)編寫處理消息的類,在Server/Server.Hotfix/Demo下創(chuàng)建一個Test文件夾,并且新建一個C2S_TestMessageHandler.cs類。用來說明該類是處理C2S_TestMessage的消息的。

代碼如下(示例):C2S_TestMessageHandler

namespace ET
{public class C2S_TestMessageHandler: AMHandler{protected override void Run(Session session, C2S_TestMessage message)
        {Log.Debug(message.HelloByClient);//輸出客戶端發(fā)送過來的消息
            
            //這時候在這里主動推送一條消息給客戶端
            session.Send(new S2C_TestMessage() {HelloByServer = "恭喜你率先達(dá)到封印等級--------3天后等級封印突破?。?!" });
        }
    }
}

由于這是一條普通消息,沒有RpcId,所以繼承的是AMHandler,而不是AMRpcHandler。類型是所處理的消息類。

(3)這時候服務(wù)器下推一條消息給客戶端,客戶端也要編寫對應(yīng)的消息處理類。在Client/Unity.Hotfix/Codes/Hotfix/Demo文件夾下創(chuàng)建一個Test文件夾,之后在Test文件夾下創(chuàng)建一個S2C_TestMessageHandler.cs類。用來說明該類是處理S2C_TestMessage的消息的。

代碼如下(示例):S2C_TestMessageHandler

namespace ET
{public class S2C_TestMessageHandler: AMHandler{protected override void Run(Session session, S2C_TestMessage message)
        {Log.Debug(message.HelloByServer);//輸出服務(wù)器下推的一條消息。
        }
    }
}
3.運行結(jié)果

保存代碼重新編譯一下代碼,通過后運行服務(wù)器端,并且回到Unity編輯器按下F5等待編譯完成后運行游戲,點擊登錄按鈕即可發(fā)送消息。
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

這時候當(dāng)點擊登錄按鈕的時候就會發(fā)送消息給服務(wù)器端,同時也將收到服務(wù)器端下推的一條普通消息,一條是client發(fā)給server的,一條是server下推給client的,同時輸出了服務(wù)器端下推的消息,而客戶端發(fā)送的消息則要到ET文件夾下的Logs文件夾中查看Debug日志。

在這里插入圖片描述


總結(jié)

簡單學(xué)習(xí)一下ET前后端的通信的使用。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


名稱欄目:06-ET框架的前后端通信2-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/jioco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部