feat: send file message directly.

oneRain 2020-12-14 12:20:33 +08:00
parent e70a231855
commit bf5e49f40e
3 changed files with 15 additions and 2 deletions

View File

@ -273,6 +273,7 @@ namespace LeanCloud.Realtime {
if (options == null) { if (options == null) {
options = LCIMMessageSendOptions.Default; options = LCIMMessageSendOptions.Default;
} }
await message.PrepareSend();
await Client.MessageController.Send(Id, message, options); await Client.MessageController.Send(Id, message, options);
LastMessage = message; LastMessage = message;
return message; return message;
@ -450,13 +451,13 @@ namespace LeanCloud.Realtime {
/// <param name="start">Start message ID.</param> /// <param name="start">Start message ID.</param>
/// <param name="end">End message ID.</param> /// <param name="end">End message ID.</param>
/// <param name="direction">Query direction (defaults to NewToOld).</param> /// <param name="direction">Query direction (defaults to NewToOld).</param>
/// <param name="limit">Limits the number of returned results. Its default value is 20.</param> /// <param name="limit">Limits the number of returned results. Its default value is 100.</param>
/// <param name="messageType">The message type to query. The default value is 0 (text message).</param> /// <param name="messageType">The message type to query. The default value is 0 (text message).</param>
/// <returns></returns> /// <returns></returns>
public async Task<ReadOnlyCollection<LCIMMessage>> QueryMessages(LCIMMessageQueryEndpoint start = null, public async Task<ReadOnlyCollection<LCIMMessage>> QueryMessages(LCIMMessageQueryEndpoint start = null,
LCIMMessageQueryEndpoint end = null, LCIMMessageQueryEndpoint end = null,
LCIMMessageQueryDirection direction = LCIMMessageQueryDirection.NewToOld, LCIMMessageQueryDirection direction = LCIMMessageQueryDirection.NewToOld,
int limit = 20, int limit = 100,
int messageType = 0) { int messageType = 0) {
return await Client.MessageController.QueryMessages(Id, start, end, direction, limit, messageType); return await Client.MessageController.QueryMessages(Id, start, end, direction, limit, messageType);
} }

View File

@ -2,6 +2,7 @@
using System.IO; using System.IO;
using System.Collections.Generic; using System.Collections.Generic;
using LeanCloud.Storage; using LeanCloud.Storage;
using System.Threading.Tasks;
namespace LeanCloud.Realtime { namespace LeanCloud.Realtime {
public class LCIMFileMessage : LCIMTextMessage { public class LCIMFileMessage : LCIMTextMessage {
@ -125,5 +126,11 @@ namespace LeanCloud.Realtime {
} }
} }
} }
internal override async Task PrepareSend() {
if (File != null && string.IsNullOrEmpty(File.ObjectId)) {
await File.Save();
}
}
} }
} }

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
namespace LeanCloud.Realtime { namespace LeanCloud.Realtime {
/// <summary> /// <summary>
@ -125,5 +126,9 @@ namespace LeanCloud.Realtime {
internal LCIMMessage() { internal LCIMMessage() {
} }
internal virtual Task PrepareSend() {
return Task.CompletedTask;
}
} }
} }