public async Task CreateConversation() { TaskCompletionSource <object> tcs = new TaskCompletionSource <object>(); string clientId = Guid.NewGuid().ToString(); LCIMClient client = new LCIMClient(clientId); await client.Open(); client.OnInvited = (conv, initBy) => { WriteLine($"on invited: {initBy}"); WriteLine(conv.CreatorId); }; client.OnMembersJoined = (conv, memberList, initBy) => { WriteLine($"on members joined: {initBy}"); foreach (string memberId in conv.MemberIds) { WriteLine(memberId); } tcs.SetResult(null); }; string name = Guid.NewGuid().ToString(); LCIMConversation conversation = await client.CreateConversation(new string[] { "world" }, name : name, unique : false); await tcs.Task; }
public async Task Unread() { TaskCompletionSource <object> tcs = new TaskCompletionSource <object>(); string clientId = Guid.NewGuid().ToString(); LCIMClient client = new LCIMClient(clientId); LCIMConversation conversation = await m1.CreateConversation(new string[] { clientId }); LCIMTextMessage textMessage = new LCIMTextMessage("hello"); await conversation.Send(textMessage); client.OnUnreadMessagesCountUpdated = (convs) => { foreach (LCIMConversation conv in convs) { WriteLine($"unread count: {conv.Unread}"); //Assert.AreEqual(conv.Unread, 1); //Assert.True(conv.LastMessage is LCIMTextMessage); //LCIMTextMessage textMsg = conv.LastMessage as LCIMTextMessage; //Assert.AreEqual(textMsg.Text, "hello"); } }; await client.Open(); client.OnMessage = (conv, msg) => { WriteLine($"unread count: {conv.Unread}"); Assert.AreEqual(conv.Unread, 2); Assert.True(conv.LastMessage is LCIMTextMessage); LCIMTextMessage textMsg = conv.LastMessage as LCIMTextMessage; Assert.AreEqual(textMsg.Text, "world"); tcs.SetResult(true); }; textMessage = new LCIMTextMessage("world"); await conversation.Send(textMessage); await tcs.Task; }
internal void Register(LCIMClient client) { idToClients[client.Id] = client; if (defaultClientId == null) { defaultClientId = client.Id; } }
internal void UnRegister(LCIMClient client) { idToClients.Remove(client.Id); if (idToClients.Count == 0) { Disconnect(); LCRealtime.RemoveConnection(this); } }
public override async void Show() { base.Show(); LCIMClient client = LCManager.Instance.IMClient; client.OnMessage += OnMessage; LCIMChatRoom chatRoom = await client.GetConversation(WordConversationId) as LCIMChatRoom; await chatRoom.Join(); }
public async Task SetUp() { Utils.SetUp(); m1 = new LCIMClient("m1"); m2 = new LCIMClient("m2"); await m1.Open(); await m2.Open(); conversation = await m1.CreateConversation(new string[] { "m2" }); }
public async Task SetUp() { Utils.SetUp(); c1 = new LCIMClient(Guid.NewGuid().ToString()); c2 = new LCIMClient(Guid.NewGuid().ToString()); await c1.Open(); await c2.Open(); conversation = await c1.CreateConversation(new string[] { Guid.NewGuid().ToString() }); }
public async Task OpenAndClose() { LCIMClient c1 = new LCIMClient("c1"); LCIMClient c2 = new LCIMClient("c2"); await c1.Open(); await c2.Open(); await c1.Close(); await c2.Close(); }
public async Task <LCUser> Login(string token) { try { User = await LCUser.BecomeWithSessionToken(token); IMClient = new LCIMClient(User); await IMClient.Open(); return(User); } catch (LCException e) { LCUtils.LogException(e); throw e; } }
public async Task <LCUser> Login(string username, string password) { try { User = await LCUser.Login(username, password); IMClient = new LCIMClient(User); await IMClient.Open(); return(User); } catch (LCException e) { LCUtils.LogException(e); throw e; } }
public async Task Logout() { try { await LCUser.Logout(); LCUtils.RemoveLocalUser(); await IMClient.Close(); User = null; IMClient = null; } catch (LCException e) { LCUtils.LogException(e); } }
public async Task SetUp() { Utils.SetUp(); c1 = new LCIMClient(Guid.NewGuid().ToString()); await c1.Open(); c2 = new LCIMClient(Guid.NewGuid().ToString()); await c2.Open(); lean = new LCIMClient("lean"); await lean.Open(); conversation = await c1.CreateConversation(new string[] { "lean", "cloud" }); }
public async void Reload() { scrollRect.ClearItemData(); LCIMClient client = LCManager.Instance.IMClient; LCIMConversationQuery query = client.GetQuery() .WhereEqualTo("m", client.Id) .WhereEqualTo("tr", false) .OrderByDescending("updatedAt"); ReadOnlyCollection <LCIMConversation> conversations = await query.Find(); foreach (LCIMConversation conversation in conversations) { scrollRect.AddItemData(conversation); } }
public async Task OpenAndCloseByLCUser() { LCUser user = await LCUser.Login(USERNAME1, PASSWORD1); LCIMClient client = new LCIMClient(user); await client.Open(); LCUser game = await LCUser.Login(USERNAME2, PASSWORD2); LCIMClient client2 = new LCIMClient(game); await client2.Open(); await client.Close(); await client2.Close(); }
public async Task <LCUser> Register(string username, string password) { try { LCUser user = new LCUser { Username = username, Password = password }; await user.SignUp(); IMClient = new LCIMClient(user); await IMClient.Open(); return(user); } catch (LCException e) { LCUtils.LogException(e); throw e; } }
private async void Reload() { scrollRect.ClearItemData(); nameText.text = target.GetNickname(); client = LCManager.Instance.IMClient; client.OnMessage += OnMessage; conversation = await client.CreateConversation(new string[] { target.ObjectId }); // 拉取历史消息 ReadOnlyCollection <LCIMMessage> messages = await conversation.QueryMessages(); foreach (LCIMMessage message in messages) { AddMessage(message); } }
private async Task <string> GetConversationName(LCIMConversation conv) { if (conv.Name != null) { return(conv.Name); } LCIMClient client = LCManager.Instance.IMClient; if (conv.MemberIds.Count == 2) { // 私聊 string targetId = conv.MemberIds[0] == client.Id ? conv.MemberIds[1] : conv.MemberIds[0]; target = await LCManager.Instance.GetUser(targetId); return(target.GetNickname()); } return("Group"); }
static void Main(string[] args) { WriteLine("Hello World!"); SingleThreadSynchronizationContext.Run(async() => { LCLogger.LogDelegate += Print; LCApplication.Initialize("ikGGdRE2YcVOemAaRbgp1xGJ-gzGzoHsz", "NUKmuRbdAhg1vrb2wexYo1jo", "https://ikggdre2.lc-cn-n1-shared.com"); LCIMClient client = new LCIMClient("lean") { OnPaused = () => { WriteLine("~~~~~~~~~~~~~~~ disconnected"); }, OnResume = () => { WriteLine("~~~~~~~~~~~~~~~ reconnected"); } }; await client.Open(); int count = 0; while (count < 2) { WriteLine($"pause : {count}"); await Task.Delay(5 * 1000); LCRealtime.Pause(); await Task.Delay(5 * 1000); LCRealtime.Resume(); await Task.Delay(5 * 1000); count++; } try { await client.Close(); // Done } catch (Exception e) { WriteLine($"xxxxxxxxxxxx {e.Message}"); } }); }
public async Task CreateChatRoom() { string clientId = Guid.NewGuid().ToString(); LCIMClient client = new LCIMClient(clientId); await client.Open(); client.OnInvited = (conv, initBy) => { WriteLine($"on invited: {initBy}"); }; string name = Guid.NewGuid().ToString(); LCIMConversation conversation = await client.CreateChatRoom(name); string visitorId = Guid.NewGuid().ToString(); LCIMClient visitor = new LCIMClient(visitorId); await visitor.Open(); LCIMChatRoom chatRoom = await visitor.GetConversation(conversation.Id) as LCIMChatRoom; await chatRoom.Join(); LCIMTextMessage textMessage = new LCIMTextMessage("hello, world"); await conversation.Send(textMessage); int count = await chatRoom.GetMembersCount(); ReadOnlyCollection <string> onlineMembers = await chatRoom.GetOnlineMembers(); Assert.GreaterOrEqual(onlineMembers.Count, 1); foreach (string memberId in onlineMembers) { WriteLine($"{memberId} online"); } await client.Close(); await visitor.Close(); }
public async Task CreateTemporaryConversation() { TaskCompletionSource <object> tcs = new TaskCompletionSource <object>(); string clientId = Guid.NewGuid().ToString(); LCIMClient client = new LCIMClient(clientId); await client.Open(); client.OnInvited = (conv, initBy) => { WriteLine($"on invited: {initBy}"); }; client.OnMembersJoined = (conv, memberList, initBy) => { WriteLine($"on members joined: {initBy}"); tcs.SetResult(null); }; await client.CreateTemporaryConversation(new string[] { "world" }); await tcs.Task; }
public async Task SetUp() { Utils.SetUp(); client = new LCIMClient(clientId); await client.Open(); }
internal LCIMConversationController(LCIMClient client) : base(client) { }
internal LCIMController(LCIMClient client) { Client = client; }
internal LCIMSessionController(LCIMClient client) : base(client) { }
internal LCIMMessageController(LCIMClient client) : base(client) { }