Пример #1
0
    public void SendMessage(IMessage obj)
    {
        if (!MessageDefine.ContainProtoType(obj.GetType()))
        {
            AppDebug.Log("协议不存在:" + obj.GetType().ToString());
            return;
        }

        Message msg = new Message();

        //set header
        msg.Header = new Header();

        //set body
        {
            byte[] messageBody = obj.ToByteArray();
            byte[] body        = new byte[2 + messageBody.Length];
            using (AppMemoryStream ms = new AppMemoryStream())
            {
                int id = MessageDefine.GetProtoIdByProtoType(obj.GetType());
                ms.WriteUShort((ushort)(id));
                ms.Write(messageBody, 0, messageBody.Length);
                body = ms.ToArray();
            }
            msg.Body = ByteString.CopyFrom(body);
        }

        //发送消息
        int protoId = MessageDefine.GetProtoIdByProtoType(msg.GetType());

        SocketClient.Instance.SendMessage(protoId, msg.ToByteArray());
    }
Пример #2
0
    public void SendToGame(IMessage obj)
    {
        if (!MessageDefine.ContainProtoType(obj.GetType()))
        {
            AppDebug.Log("协议不存在:" + obj.GetType().ToString());

            return;
        }
        Header h = new Header();

        h.ServiceId0 = (int)SERVICE.G001;

        SendToService(h, obj);
    }