コード例 #1
0
ファイル: Client.cs プロジェクト: leancloud/csharp-sdk
        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;
        }
コード例 #2
0
ファイル: Message.cs プロジェクト: leancloud/csharp-sdk
        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;
        }
コード例 #3
0
ファイル: Message.cs プロジェクト: leancloud/csharp-sdk
        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" });
        }
コード例 #4
0
ファイル: Throttle.cs プロジェクト: leancloud/csharp-sdk
        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() });
        }
コード例 #5
0
ファイル: Client.cs プロジェクト: leancloud/csharp-sdk
        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();
        }
コード例 #6
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;
        }
    }
コード例 #7
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;
        }
    }
コード例 #8
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" });
        }
コード例 #9
0
ファイル: Client.cs プロジェクト: leancloud/csharp-sdk
        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();
        }
コード例 #10
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;
        }
    }
コード例 #11
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}");
                }
            });
        }
コード例 #12
0
ファイル: Client.cs プロジェクト: leancloud/csharp-sdk
        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();
        }
コード例 #13
0
ファイル: Client.cs プロジェクト: leancloud/csharp-sdk
        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;
        }
コード例 #14
0
 public async Task SetUp()
 {
     Utils.SetUp();
     client = new LCIMClient(clientId);
     await client.Open();
 }