private void OnFileUploadReq(Datagram datagram) { FileUploadReq req = datagram.UnSerialData <FileUploadReq>(); Upload upload = new Upload(FileRootPath + "\\" + datagram.Sender.ToString(), req.Path, req.Name, req.Size); Guid upload_id = Guid.NewGuid(); if (FileCache.TryAdd(upload_id, upload)) { FileUploadRes res = new FileUploadRes { UploadID = upload_id }; datagram.DataType = DatagramType.Client; datagram.MessageType = CloudDatagramDefine.FileUploadRes; datagram.Datas = res.ToByteArray(); if (!Send(datagram.ToByteArray())) { Notify(IKXTServer.LogLevel.Error, "数据发送异常"); Close(); } } else { upload.Clear(); } }
private void OnCloud_FileUploadRes(Datagram datagram) { FileUploadRes response = datagram.UnSerialData <FileUploadRes>(); if (RunningDatas.RequestTable.TryRemove(datagram.RequestID, out RequestSender value)) { value.RequestCallback(response); } }
public void RequestCallback(object response) { if (null != response) { if (response.GetType() == FileUploadResTemp.GetType()) { WaitTimer.Stop(); FileUploadRes res = response as FileUploadRes; Root.ToStartUpload(res.UploadID, File, ID); } else if (response.GetType() == FileDownloadResTemp.GetType()) { WaitTimer.Stop(); FileDownloadRes res = response as FileDownloadRes; File.Size = res.Size; Root.ToStartDownload(res.DownloadID, File, ID); } } }