csharp-sdk-upm/Test/RealtimeConsole/Program.cs

130 lines
4.6 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using LeanCloud;
using LeanCloud.Common;
using LeanCloud.Storage;
using LeanCloud.Realtime;
namespace RealtimeConsole {
class MainClass {
public static void Main(string[] args) {
Console.WriteLine("Hello World!");
LCLogger.LogDelegate += (level, info) => {
switch (level) {
case LCLogLevel.Debug:
Console.WriteLine($"[DEBUG] {info}");
break;
case LCLogLevel.Warn:
Console.WriteLine($"[WARNING] {info}");
break;
case LCLogLevel.Error:
Console.WriteLine($"[ERROR] {info}");
break;
default:
Console.WriteLine(info);
break;
}
};
LCApplication.Initialize("ikGGdRE2YcVOemAaRbgp1xGJ-gzGzoHsz", "NUKmuRbdAhg1vrb2wexYo1jo", "https://ikggdre2.lc-cn-n1-shared.com");
//_ = Start();
//_ = ChatRoom();
_ = TemporaryConversation();
Console.ReadKey(true);
}
static async Task ChatRoom() {
LCIMClient hello = new LCIMClient("hello");
await hello.Open();
string name = Guid.NewGuid().ToString();
LCIMChatRoom chatRoom = await hello.CreateChatRoom(name);
Console.WriteLine(chatRoom.Name);
}
static async Task TemporaryConversation() {
string c1Id = Guid.NewGuid().ToString();
LCIMClient c1 = new LCIMClient(c1Id);
await c1.Open();
string c2Id = Guid.NewGuid().ToString();
LCIMClient c2 = new LCIMClient(c2Id);
await c2.Open();
LCIMTemporaryConversation temporaryConversation = await c1.CreateTemporaryConversation(new string[] { c2Id });
Console.WriteLine(temporaryConversation.Id);
}
static async Task Start() {
LCIMClient hello = new LCIMClient("hello");
await hello.Open();
hello.OnInvited = (conv, initBy) => {
Console.WriteLine($"on invited: {initBy}");
};
hello.OnMembersJoined = (conv, memberList, initBy) => {
Console.WriteLine($"on members joined: {initBy}");
};
List<string> memberIdList = new List<string> { "world", "code" };
string name = Guid.NewGuid().ToString();
LCIMConversation conversation = await hello.CreateConversation(memberIdList, name: name, unique: true);
LCIMClient world = new LCIMClient("world");
await world.Open();
world.OnMessageReceived = (conv, message) => {
Console.WriteLine(message);
if (message is LCIMTypedMessage typedMessage) {
Console.WriteLine(typedMessage["k1"]);
Console.WriteLine(typedMessage["k2"]);
Console.WriteLine(typedMessage["k3"]);
}
};
//LCIMTextMessage textMessage = new LCIMTextMessage("hello, world");
//await conversation.Send(textMessage);
//await Task.Delay(3000);
//LCIMTextMessage newMessage = new LCIMTextMessage("hello, code");
//await conversation.Update(textMessage, newMessage);
//// 设置成员的角色
//await conversation.UpdateMemberRole("world", LCIMConversationMemberInfo.Manager);
//List<LCIMConversationMemberInfo> members = await conversation.GetAllMemberInfo();
//foreach (LCIMConversationMemberInfo member in members) {
// Console.WriteLine(member.MemberId);
//}
LCIMTextMessage textMessage = new LCIMTextMessage("hello, world");
textMessage["k1"] = 123;
textMessage["k2"] = "abc";
textMessage["k3"] = true;
await conversation.Send(textMessage);
//LCFile file = new LCFile("avatar", "../../../Storage.Test/assets/hello.png");
//file.MetaData["width"] = 225;
//file.MetaData["height"] = 225;
//file.MetaData["size"] = 1186;
//await file.Save();
//LCIMImageMessage imageMessage = new LCIMImageMessage(file);
//await conversation.Send(imageMessage);
//LCGeoPoint location = new LCGeoPoint(11, 12);
//LCIMLocationMessage locationMessage = new LCIMLocationMessage(location);
//await conversation.Send(locationMessage);
}
}
}