protected internal override void OnMessageReceived(ConversationMessage message) { if (message is FileDataMessage || message is SendItemsMessage) { //TODO 这个应该交给一个线程去做。 receiver.QueueMessage(message); } else if (message is ConversationRecoverRequestMessage) { //对方发一个请求,问我正在接收哪些文件。如果我这一边已经异常退出了,那么其实我是没什么信息可以回给对方。 RecoverSendItemsResponse resp = new RecoverSendItemsResponse(); resp.SetItems(receiver.TransferringItem); PostMessage(resp); } else if (message is CancelItemMessage) { CancelItemMessage msg = message as CancelItemMessage; msg.Items.ForEach((o) => { var cutItem = Items.FirstOrDefault(d => d.ID == o.ID); if (cutItem != null) { cutItem.TransferState = TransferState.Canceled; if (cutItem.Type == ItemType.Directory) { var dir = cutItem as DirItem; if (dir != null) { receiver.ProcessReceiveListChildItems(dir); } } } }); } }
protected internal override void OnMessageReceived(ConversationMessage message) { if (message is FileDataMessage || message is SendItemsMessage) { receiver.QueueMessage(message); } }