Beispiel #1
0
        void IDataSender.FriendChatReq(Guid request_id, FriendChatsReq req)
        {
            Datagram datagram = new Datagram
            {
                DataType    = DatagramType.Chat,
                MessageType = ChatDatagramDefine.FriendChatsReq,
                RequestID   = request_id,
                Datas       = req.ToByteArray()
            };

            if (!Send(datagram))
            {
                RunningDatas.InfoNotify("网络连接失败 请重启软件后重试");
            }
        }
Beispiel #2
0
        private void OnFriendChatsReq(Datagram datagram)
        {
            FriendChatsReq req = datagram.UnSerialData <FriendChatsReq>();

            FriendChatsRes res = new FriendChatsRes();

            ChatPackage[] chats = UserChatReader.ReadFriendChat(req.Sender, req.Friend, datagram.RequestID);

            byte[][] buffer;
            if (null != chats)
            {
                for (int i = 0; i < chats.Length; ++i)
                {
                    res.Chat.Add(chats[i] as FriendChatPackage);
                }

                buffer = res.ToByteArrays();
            }
            else
            {
                buffer = new byte[1][]
                {
                    new byte[0]
                }
            };

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = ChatDatagramDefine.FriendChatsRes;
            for (int i = 0; i < buffer.Length; ++i)
            {
                datagram.Datas = buffer[i];
                if (!Send(datagram.ToByteArray()))
                {
                    Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                    Close();
                }
            }
        }