Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
 internal void Register(LCIMClient client)
 {
     idToClients[client.Id] = client;
     if (defaultClientId == null)
     {
         defaultClientId = client.Id;
     }
 }
Esempio n. 4
0
 internal void UnRegister(LCIMClient client)
 {
     idToClients.Remove(client.Id);
     if (idToClients.Count == 0)
     {
         Disconnect();
         LCRealtime.RemoveConnection(this);
     }
 }
Esempio n. 5
0
    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();
    }
Esempio n. 6
0
        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" });
        }
Esempio n. 7
0
        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() });
        }
Esempio n. 8
0
        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();
        }
Esempio n. 9
0
    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;
        }
    }
Esempio n. 10
0
    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;
        }
    }
Esempio n. 11
0
    public async Task Logout()
    {
        try {
            await LCUser.Logout();

            LCUtils.RemoveLocalUser();
            await IMClient.Close();

            User     = null;
            IMClient = null;
        } catch (LCException e) {
            LCUtils.LogException(e);
        }
    }
Esempio n. 12
0
        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" });
        }
Esempio n. 13
0
    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);
        }
    }
Esempio n. 14
0
        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();
        }
Esempio n. 15
0
    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;
        }
    }
Esempio n. 16
0
    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);
        }
    }
Esempio n. 17
0
    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");
    }
Esempio n. 18
0
        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}");
                }
            });
        }
Esempio n. 19
0
        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();
        }
Esempio n. 20
0
        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;
        }
Esempio n. 21
0
 public async Task SetUp()
 {
     Utils.SetUp();
     client = new LCIMClient(clientId);
     await client.Open();
 }
Esempio n. 22
0
 internal LCIMConversationController(LCIMClient client) : base(client)
 {
 }
Esempio n. 23
0
 internal LCIMController(LCIMClient client)
 {
     Client = client;
 }
 internal LCIMSessionController(LCIMClient client)
     : base(client)
 {
 }
 internal LCIMMessageController(LCIMClient client) : base(client)
 {
 }