Exemplo n.º 1
0
        public async Task ShouldSendMessageDirectChannel()
        {
            var session1 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}");

            var session2 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}");

            await _client.AddFriendsAsync(session1, new[] { session2.UserId });

            await _client.AddFriendsAsync(session2, new[] { session1.UserId });

            var completer = new TaskCompletionSource <IApiChannelMessage>();

            _socket.ReceivedChannelMessage += (chatMessage) => completer.SetResult(chatMessage);
            await _socket.ConnectAsync(session1);

            var socket2 = Nakama.Socket.From(_client);
            await socket2.ConnectAsync(session2);

            var channel = await _socket.JoinChatAsync(session2.UserId, ChannelType.DirectMessage, false, false);

            // Send chat message.
            var content = new Dictionary <string, string> {
                { "hello", "world" }
            }.ToJson();
            var sendAck = await _socket.WriteChatMessageAsync(channel, content);

            var message = await completer.Task.ConfigureAwait(false);

            Assert.NotNull(sendAck);
            Assert.NotNull(message);
            Assert.Equal(sendAck.ChannelId, message.ChannelId);
            Assert.Equal(sendAck.MessageId, message.MessageId);
            Assert.Equal(sendAck.Username, message.Username);
        }
Exemplo n.º 2
0
        /// <summary>
        /// This method is sending request to database for adding new friend using username. Return value indicates whether operation succeed or failed.
        /// </summary>
        /// <returns></returns>
        public static async Task <bool> AddFriendByUsernameAsync(string username, IClient client, ISession session)
        {
            try
            {
                string[] usernames = new[] { username };
                await client.AddFriendsAsync(session, new string[] { }, usernames);

                return(true);
            }
            catch (Exception e) //catching exception, if program entered this code adding friend operation was not successfully completed
            {
                Debug.Log("Adding friend failed (" + e.Message + ")");
                return(false);
            }
        }
Exemplo n.º 3
0
        public async Task ShouldAddFriendsAccepted()
        {
            var session1 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}");

            var session2 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}");

            await _client.AddFriendsAsync(session1, new[] { session2.UserId });

            await _client.AddFriendsAsync(session2, new[] { session1.UserId });

            var result1 = await _client.ListFriendsAsync(session1);

            Assert.NotNull(result1);
            Assert.AreEqual(0, result1.Friends.First().State);
            Assert.AreEqual(session2.UserId, result1.Friends.First().User.Id);
            var result2 = await _client.ListFriendsAsync(session2);

            Assert.NotNull(result2);
            Assert.AreEqual(0, result2.Friends.First().State);
            Assert.AreEqual(session1.UserId, result2.Friends.First().User.Id);
        }