c#網絡通信框架networkcomms內核解析之二 消息處理流程

發送端發送消息給接收端 ,接收端進行處理

  

舉例:客戶端把某用戶信息(用戶ID,用戶密碼)傳輸給服務器,服務器存儲到數據庫中。

發送方

    1、契約類(用戶信息類)     

複製代碼
 [ProtoContract]
    public  class UserInfo
    {
        [ProtoMember(1)]
        public string UserID;

        [ProtoMember(2)]
        public string Password;

        public UserInfo() { }

        public UserInfo(string userID, string password)
        {
            this.UserID = userID;
            this.Password = password;
        }

    }
複製代碼

    2、給契約類賦值    

UserInfo info = new UserInfo(“我的用戶ID”, "123456");

    3、客戶端發送

connection.SendObject("SendUserInfo", info);

 至此,我們發送了一個實際類型爲UserInfo的契約類,給服務器端,此次發送的消息類型是 SendUserInfo

 接收端

 1、註冊消息類型

      (當接收端收到消息類型爲SendUserInfo的消息時,會調用HandleUserInfo方法進行處理

NetworkComms.AppendGlobalIncomingPacketHandler<UserInfo>("SendUserInfo", HandleUserInfo);

2、相關的處理方法,處理方法的參數格式是統一的,第三個參數類型設置爲客戶端發來的實際類型

    至於接收端如何把收到的二進制數據解析爲實際類型,這由networkcomms通信框架來完成。

複製代碼
private void HandleUserInfo(PacketHeader header, Connection connection, UserInfo userInfo)
        {
            //對收到的契約類 userInfo進行處理
            string userID=userInfo.UserID;
            string passWord=userInfo.Password;
            //把獲取到的數據存入到數據庫中
        }
複製代碼

流程結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章