Example #1
0
        private void Initialize()
        {
            var kernel = new StandardKernel();

            resolver = new NinjectDependencyResolver(kernel);
            kernel.Bind <IDependencyResolver>().ToMethod(_ => resolver);

            var viewLocater = new ViewLocater(assemblies);

            kernel.Bind <ViewLocater>().ToMethod(_ => viewLocater);

            var contentLoader = new NinjectContentLoader(viewLocater, resolver);

            kernel.Bind <IContentLoader>().ToMethod(_ => contentLoader);

            var jabbrClient = new JabbRClient("https://jabbr.net/"); // todo get the url from configuration.

            kernel.Bind <IJabbRClient>().ToMethod(_ => jabbrClient);

            kernel.Bind <IJabbRContext>().To <JabbRContext>().InSingletonScope();
            kernel.Bind <IDialogService>().To <WpfDialogService>().InSingletonScope();

            kernel.Bind <ICredentialManager>().To <CredentialManager>().InSingletonScope();
            kernel.Bind <IEventAggregator>().To <EventAggregator>().InSingletonScope();
        }
Example #2
0
        public ChatWindowViewModel(RoomService roomService, ServiceLocator serviceLocator, JabbRClient client)
        {
            _roomService    = roomService;
            _serviceLocator = serviceLocator;
            _client         = client;

            Initialize();
        }
Example #3
0
        public Bot2(string name, string password, string url)
        {
            Name      = name;
            _url      = url;
            _password = password;

            client = new JabbRClient(_url);
        }
Example #4
0
        private void InitializeClient()
        {
            _client = new JabbRClient(_url);

            _client.MessageReceived += (message, room) =>
            {
                ProcessMessage(message, room);
            };
        }
Example #5
0
 public AuthenticationService(
     JabbRClient jabbrClient,
     UserService userService,
     RoomService roomService)
 {
     _client      = jabbrClient;
     _userService = userService;
     _roomService = roomService;
 }
Example #6
0
        private void InitializeClient()
        {
            _client = new JabbRClient(_url, new LongPollingTransport());

            _client.MessageReceived += (message, room) =>
            {
                ProcessMessage(message, room);
            };
        }
Example #7
0
        public UserService(ServiceLocator serviceLocator, JabbRClient client)
        {
            _serviceLocator = serviceLocator;
            _client         = client;
            _users          = new ConcurrentDictionary <string, UserViewModel>();

            _client.UserActivityChanged += OnUserActivityChanged;
            _client.NoteChanged         += UserNoteChanged;
            _client.UsersInactive       += OnUsersInactive;
            _client.GravatarChanged     += OnGravatarChanged;
            _client.UsernameChanged     += OnUsernameChanged;
        }
Example #8
0
        private void InitializeClient()
        {
            client = new JabbRClient(_url, new LongPollingTransport());
            client.MessageReceived += (message, room) =>
            {
                ProcessMessage(message, room);
            };

            client.UserJoined += (user, message) =>
            {
            };
        }
Example #9
0
        public MessageService(
            ServiceLocator serviceLocator,
            UserService userService,
            JabbRClient client,
            RoomService roomService)
        {
            _serviceLocator = serviceLocator;
            _userService    = userService;
            _roomService    = roomService;
            _client         = client;

            _client.MessageReceived += OnMessageReceived;
        }
        async void Connect()
        {
            _client = new JabbRClient(this.Account.Url);
            _client.AddMessageContent += HandleAddMessageContent;
            //client.Disconnected += HandleDisconnected;
            _client.FlagChanged       += HandleFlagChanged;
            _client.JoinedRoom        += HandleJoinedRoom;
            _client.Kicked            += HandleKicked;
            _client.LoggedOut         += HandleLoggedOut;
            _client.MeMessageReceived += HandleMeMessageReceived;
            _client.MessageReceived   += HandleMessageReceived;
            _client.NoteChanged       += HandleNoteChanged;
            _client.OwnerAdded        += HandleOwnerAdded;
            _client.OwnerRemoved      += HandleOwnerRemoved;
            _client.PrivateMessage    += HandlePrivateMessage;
            //_client.RoomCountChanged += HandleRoomCountChanged;
            //client.StateChanged += HandleStateChanged;
            _client.TopicChanged        += HandleTopicChanged;
            _client.UserActivityChanged += HandleUserActivityChanged;
            _client.UserJoined          += HandleUserJoined;
            _client.UserLeft            += HandleUserLeft;
            _client.UsernameChanged     += HandleUsernameChanged;
            _client.UsersInactive       += HandleUsersInactive;
            _client.UserTyping          += HandleUserTyping;

            LogOnInfo logonInfo = null;

            try
            {
                logonInfo = await _client.Connect(Account.Username, Account.Password);
            }
            catch (Exception ex)
            {
                Log("Connect Exception: " + ex);
            }

            if (logonInfo != null)
            {
                this.UserId = logonInfo.UserId;

                //Add us into the result's Rooms
                foreach (var r in logonInfo.Rooms)
                {
                    Mvx.Trace("Rooms In: " + r.Name);
                    RoomsIn.Add(r);
                }

                Log("Connected> " + this.UserId ?? "" + " -> Rooms: " + RoomsIn.Count);
                _messenger.Publish(new JabbrConnectedMessage(this, this, this.UserId, RoomsIn));
            }
        }
Example #11
0
        public RoomService(JabbRClient client, ServiceLocator serviceLocator, UserService userService)
        {
            _client         = client;
            _serviceLocator = serviceLocator;
            _userService    = userService;

            _client.Kicked           += OnKicked;
            _client.OwnerAdded       += OnOwnerAdded;
            _client.OwnerRemoved     += OnOwnerRemoved;
            _client.RoomCountChanged += OnRoomCountChanged;
            _client.TopicChanged     += OnTopicChanged;
            _client.UserJoined       += OnUserJoined;
            _client.UserLeft         += OnUserLeft;
            _client.UserTyping       += OnUserTyping;
        }
Example #12
0
        public JabbrAdapter(ChatServer chatServerConfig)
        {
            serverConfig = chatServerConfig;
            client       = new JabbRClient(serverConfig.ServerAddress)
            {
                AutoReconnect = true
            };

            Messages = Observable.FromEvent <Action <Message, string>, ChatMessage>(handler =>
            {
                Action <Message, string> converter = (jabbrMessage, room) =>
                {
                    try
                    {
                        if (client == null)
                        {
                            return;
                        }

                        // Don't relay our own messages
                        if (jabbrMessage.User.Name.Equals(serverConfig.UserName, StringComparison.OrdinalIgnoreCase))
                        {
                            return;
                        }

                        var chatMessage = new ChatMessage
                        {
                            ServerId  = serverConfig.ServerId,
                            Room      = room,
                            User      = jabbrMessage.User.Name,
                            Text      = jabbrMessage.Content,
                            TimeStamp = jabbrMessage.When
                        };

                        handler(chatMessage);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine($"{serverConfig.ServerId}|EXCEPTION: {ex}");
                    }
                };

                return(converter);
            },
                                                                                    converter => client.MessageReceived += converter,
                                                                                    converter => client.MessageReceived -= converter
                                                                                    );
        }
Example #13
0
        private void SetupJabbrClient()
        {
            if (_client != null)
            {
                return;
            }

            _client = new JabbRClient(_host)
            {
                AutoReconnect = true
            };

            _client.MessageReceived += ClientOnMessageReceived;

            _client.UserJoined += OnUserJoined;

            _client.UserLeft += OnUserLeft;

            _client.PrivateMessage += OnPrivateMessage;
            
        }
Example #14
0
        private void SetupJabbrClient()
        {
            if (_client != null)
            {
                return;
            }

            _client = new JabbRClient(_host)
            {
                AutoReconnect = true
            };

            _client.MessageReceived += ClientOnMessageReceived;

            _client.UserJoined += OnUserJoined;

            _client.UserLeft += OnUserLeft;

            _client.PrivateMessage += OnPrivateMessage;

            _client.TopicChanged += OnTopicChanged;
        }
Example #15
0
        static void Main(string[] args)
        {
            string server = "https://jabbr-staging.apphb.com";
            string roomName = "test";
            string userName = "******";
            string password = "******";

            var client = new JabbRClient(server);

            // Uncomment to see tracing
            // client.TraceWriter = Console.Out;

            // Subscribe to new messages
            client.MessageReceived += (message, room) =>
            {
                Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            };

            client.UserJoined += (user, room, isOwner) =>
            {
                Console.WriteLine("{0} joined {1}", user.Name, room);
            };

            client.UserLeft += (user, room) =>
            {
                Console.WriteLine("{0} left {1}", user.Name, room);
            };

            client.PrivateMessage += (from, to, message) =>
            {
                Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            };

            var wh = new ManualResetEventSlim();

            RunClientAsync(server, roomName, userName, password, client, wh);

            wh.Wait();
        }
Example #16
0
        static void Main(string[] args)
        {
            string server   = "https://jabbr-staging.apphb.com";
            string roomName = "test";
            string userName = "******";
            string password = "******";

            var client = new JabbRClient(server);

            // Uncomment to see tracing
            // client.TraceWriter = Console.Out;

            // Subscribe to new messages
            client.MessageReceived += (message, room) =>
            {
                Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            };

            client.UserJoined += (user, room, isOwner) =>
            {
                Console.WriteLine("{0} joined {1}", user.Name, room);
            };

            client.UserLeft += (user, room) =>
            {
                Console.WriteLine("{0} left {1}", user.Name, room);
            };

            client.PrivateMessage += (from, to, message) =>
            {
                Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            };

            var wh = new ManualResetEventSlim();

            RunClientAsync(server, roomName, userName, password, client, wh);

            wh.Wait();
        }
Example #17
0
        private static void ProcessPrivateMessage(string from, string to, string content)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    if (from.Equals(BotName, StringComparison.OrdinalIgnoreCase))
                    {
                        return;
                    }

                    var privateMessage = new PrivateMessage(from, WebUtility.HtmlDecode(content));
                    var handled        = false;

                    foreach (var sprocket in Container.Sprockets)
                    {
                        if (sprocket.CanHandle(privateMessage))
                        {
                            Logger.Info(string.Format("Message received from: '{0}' > '{1}'", from, content));
                            IncrementSprocketUsage(sprocket.Name);
                            sprocket.Handle(privateMessage, JabbRClient);
                            handled = true;
                            break;
                        }
                    }

                    if (!handled)
                    {
                        JabbRClient.PrivateReply(privateMessage.From, "I don't understand that command.");
                    }
                }
                catch (Exception ex)
                {
                    var exception = ex.GetBaseException();
                    Logger.ErrorException("An error occured while processing a private message.", ex);
                }
            });
        }
Example #18
0
 private void InitializeClient()
 {
     _client = new JabbRClient(_url);
     _client.MessageReceived += this.ProcessMessage;
 }
Example #19
0
        static void Main(string[] args)
        {
            string server   = "http://localhost:16207/";
            string roomName = "test";
            string userName = "******";
            string password = "******";

            var client = new JabbRClient(server);

            // Uncomment to see tracing
            // client.TraceWriter = Console.Out;

            // Subscribe to new messages
            client.MessageReceived += (message, room) =>
            {
                Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            };

            client.UserJoined += (user, room, isOwner) =>
            {
                Console.WriteLine("{0} joined {1}", user.Name, room);
            };

            client.UserLeft += (user, room) =>
            {
                Console.WriteLine("{0} left {1}", user.Name, room);
            };

            client.PrivateMessage += (from, to, message) =>
            {
                Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            };

            var wh = new ManualResetEventSlim();

            EnsureAccount(server, userName, password);

            // Connect to chat
            client.Connect(userName, password).ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    Console.WriteLine("Error: " + task.Exception.GetBaseException());
                    wh.Set();
                }

                LogOnInfo info = task.Result;

                Console.WriteLine("Logged on successfully. You are currently in the following rooms:");
                foreach (var room in info.Rooms)
                {
                    Console.WriteLine(room.Name);
                    Console.WriteLine(room.Private);
                }

                Console.WriteLine("User id is {0}. Don't share this!", info.UserId);

                Console.WriteLine();

                // Get my user info
                User myInfo = client.GetUserInfo().Result;

                Console.WriteLine(myInfo.Name);
                Console.WriteLine(myInfo.LastActivity);
                Console.WriteLine(myInfo.Status);
                Console.WriteLine(myInfo.Country);

                // Join a room called test
                client.JoinRoom(roomName).ContinueWith(_ =>
                {
                    // Get info about the test room
                    client.GetRoomInfo(roomName).ContinueWith(t =>
                    {
                        Room roomInfo = t.Result;

                        Console.WriteLine("Users");

                        foreach (var u in roomInfo.Users)
                        {
                            Console.WriteLine(u.Name);
                        }

                        Console.WriteLine();

                        foreach (var u in roomInfo.Users)
                        {
                            if (u.Name != userName)
                            {
                                client.SendPrivateMessage(u.Name, "hey there, this is private right?");
                            }
                        }
                    });
                });

                // Set the flag
                client.SetFlag("bb");

                // Set the user note
                client.SetNote("This is testing a note");

                // Mark the client as typing
                client.SetTyping(roomName);

                // Clear the note
                client.SetNote(null);

                // Say hello to the room
                client.Send("Hello world", roomName);

                // Post a notification
                client.PostNotification(new ClientNotification
                {
                    Source   = "Github",
                    Content  = "This is a fake github notification from the client",
                    ImageUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAHD0lEQVR4nH2Xy28cWRXGf/dRVV3dfnWcOGOPMwxxJgLNgJAijRhWLCKxyyJ/CFt2rJDYjNjyLyDNfzA7YANEbACNFBQNyGDHdpzY7W7X4z5Z1KOrY4uSjrpVbt/73e985zvnCgbP8+fPAZQQAiEESimklCvRPUIIYgQEECMxRkIIeB/w3uOcxTmHcw5rLcYYrG3exRj9ixcvmnUAnj17hrX2SYzxS6XUJ1JKIaVcAlAK2YISQnS7ghDt/h2AiPce77uNHc7ZFQBtnHnvf22t/UoDVFX1Q+CP29vb+Xg8RmuNUuoGA0sASxa6J8aI94EQ/MrJuzDGYKzF1DVFUeydnZ39znu/JQG897/a3NzM8zzvqexO1W0khOiB3AauiSWgho2Ac466NlRVRXF9zWKxwDnPdDoVxphf6vb3j0ejEd570jRFa43WCVovN7LWopQiTdP+5EMGmvx7AIwxSClIEk0IHqUd0kqEaDRUlgWj0Qil1L0OgJZKIWDlNN135xwvX75EKcXu7i53794lxoi1lhgjUkoSnTBfzDk6OuL8/Jz9/X02NjaaNXr9LPUSWwV3AJCtuN6nWWtNXdftqSSHh4ecn5/jnCOE0DOhpKKqK0xdE0KgLEum0+lKukAM0qkQsgUgBgoXA/V3AJIk6alXShFCQCuFSJKuHgghkCRJo6EYSZO0F/P7rDbvG2Z6BrrTqwEDjRY03nuSJLlVfMsK8A2LrYgX1wu89ysgujWVUoi2qnS3uRDcoF8pRQyR09PTnonhgq0UiUSC91gpQQhCjJRlyWw2Y2trq11Lt6GQUiFFs1ebgmVdvw/C1DXWWtIkIUlTJnnOZDxqlB8H/yfAWsvbi1nrhI7ZbMad6bRlUqFUt26Tjp6BGOnVPASglcK0eU/SlIMHuzz9/EeMxhMEsSnDDn0I+Bi5ml3y1dd/4PD4FCLIAZvD9LXIab81ZfG+4UillrRLwU+ffEa2fofri2t0vkaSZqRpRpKkqHyN4qJksnWPn33xhERrkqR11BuGJfs+0DDQqjgC1li891RVhda6AQVkSUKejQguYM9OYW8XnYi+KTk05uwEPc7ZXJ+gtSYbjVjM55RlSdWmsivdzmU7GTe2aW1Ty8bgXQPCGsPWdIr1gdo50jxl4+AxaZagdAIBdJKQJJKNR4/J1nKKygCwvr7eH2xoQA3oBkBfhjGGPvej0YgkScjznHGeI4Tg6PiYP/39nzz9yTprWxMUgcY9BVJp8I61zZzyes5fvnnFvZ0d7t+/T11VzBcLpJSEELDWIoQghAGAGJdGkmUZQog+969PThiPx3zno4+oqoqv//w3Hnyww/1726xNGqpDqCiKgrM357w6PEKNJhw8vIfzHmdtU8KDMm4YCEMG4hIdgmyU9XkSacbFbIZKNI+++xCpFJeXl/znHy+ZtAC89xhjGI/H7O0/wHlPURTYxeIG/V1474kxNgBC6NpmjVKaEEIfeZ6TScHl1RWvvv2WcZ5TFAVpklCWJVmWYa2lrmtim3drGyGHLgbr3QrAe9+PS80EszSi8WiEyjaY//eKk+sT8nGOloo4HlOWJePxuJ92fAiUVUVV15i2gZluKHGunZaWEUJoADjnMGY5uTTOtpyARqMRH+7vU1cVCMHV1RXz+bwvq6Is8c4RYqQoCqqqWgIxZmUccy2Qrpv2AKw1bctVfXuKRGhdMssyxpMJQgheHx+3oBuwi8WCGAJCyh5YWZZUVUVd1SsD6TBWANS1oa7rXqExRmJo8xU8i8WCKkTixh0ufQShqIqS9KOHzE5O0esbGBuoDYS375C2JoZAVVf9PHEbAxJoqa+p67qhryybqJrPN+dvOZ1sYz/7MfX2HvM6kn38mKI2ZB8/ZlGW5Aff591lSbFxl/rTz7nYPWC2uG5Y6ACY1TSEEFAA0+n050LKO6rr7605dANqmWSIR58SgKhTxOYBtU9Ze/gD1CRD3f0elc0ZPXiEyCWVMRipcXWFe/emBzDUQ/vOawBjLFJKKq2XU3EIPVXSGMzxIfX2B0ilsFYQvKCcOwyeugAIKFdiiia/4uoCjv6Nqar3NncrDOgmBd0Um/Q+HQYAtNaob/6KHK8Rt+/jkzs4meN9QgwSVwUEDooSXb1Dnb/Gzi5uXEiMtf2Nyfuw9AHnHFKqgU+vbt5fVIxBzi4RUpAK0YzZApLY9BLvPVVb493F5LbPRoADBkIIwXuHsZbOGZtFPFq7G8PEcIhdNrMlax2AoeKbaK9t3uP9Si/gX977T6wxxBBw3qP+zw1ouHmXsjhgYQjktugYiDFeCoCdnZ0vYoy/l1ImsttwMBkJsZzhhJA0k9gSRNfbO68fev9KdH9rgEQhxC8EwN7eHs65pyGE38QYP+xOdlt0N+LuN8MU3BYhxKWxtUCBKyHEl8Bv/weLMsKv/a+a7AAAAABJRU5ErkJggg==",
                    Room     = "test"
                });

                Console.WriteLine("Press any key to leave the room and disconnect");

                Console.Read();

                client.LeaveRoom(roomName).ContinueWith(_ =>
                {
                    client.Disconnect();

                    wh.Set();
                });
            });

            wh.Wait();
        }
Example #20
0
        static void Main(string[] args)
        {
            string server = "http://localhost:16207/";
            string roomName = "test";
            string userName = "******";
            string password = "******";

            // this might be needed in some cases
            ServicePointManager.DefaultConnectionLimit = 10;

            var client = new JabbRClient(server);

            // Subscribe to new messages
            client.MessageReceived += (message, room) =>
            {
                Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            };

            client.UserJoined += (user, room, isOwner) =>
            {
                Console.WriteLine("{0} joined {1}", user.Name, room);
            };

            client.UserLeft += (user, room) =>
            {
                Console.WriteLine("{0} left {1}", user.Name, room);
            };

            client.PrivateMessage += (from, to, message) =>
            {
                Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            };

            var wh = new ManualResetEventSlim();

            // Connect to chat
            client.Connect(userName, password).ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    wh.Set();
                }

                LogOnInfo info = task.Result;

                Console.WriteLine("Logged on successfully. You are currently in the following rooms:");
                foreach (var room in info.Rooms)
                {
                    Console.WriteLine(room.Name);
                    Console.WriteLine(room.Private);
                }

                Console.WriteLine("User id is {0}. Don't share this!", info.UserId);

                Console.WriteLine();

                // Get my user info
                User myInfo = client.GetUserInfo().Result;

                Console.WriteLine(myInfo.Name);
                Console.WriteLine(myInfo.LastActivity);
                Console.WriteLine(myInfo.Status);
                Console.WriteLine(myInfo.Country);

                // Join a room called test
                client.JoinRoom(roomName).ContinueWith(_ =>
                {
                    // Get info about the test room
                    client.GetRoomInfo(roomName).ContinueWith(t =>
                    {
                        Room roomInfo = t.Result;

                        Console.WriteLine("Users");

                        foreach (var u in roomInfo.Users)
                        {
                            Console.WriteLine(u.Name);
                        }

                        Console.WriteLine();

                        foreach (var u in roomInfo.Users)
                        {
                            if (u.Name != userName)
                            {
                                client.SendPrivateMessage(u.Name, "hey there, this is private right?");
                            }
                        }
                    });
                });

                // Set the flag
                client.SetFlag("bb");

                // Set the user note
                client.SetNote("This is testing a note");

                // Mark the client as typing
                client.SetTyping(roomName);

                // Clear the note
                client.SetNote(null);

                // Say hello to the room
                client.Send("Hello world", roomName);

                // Post a notification
                client.PostNotification(new ClientNotification
                {
                    Source = "Github",
                    Content = "This is a fake github notification from the client",
                    ImageUrl = "data:image/png;base64,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",
                    Room = "test"
                });

                Console.WriteLine("Press any key to leave the room and disconnect");

                Console.Read();

                client.LeaveRoom(roomName).ContinueWith(_ =>
                {
                    client.Disconnect();

                    wh.Set();
                });
            });

            wh.Wait();
        }
Example #21
0
        static void Main(string[] args)
        {
            string server = "https://jabbr-staging.apphb.com/";
            string roomName = "test";
            string userName = "******";
            string password = "******";

            // this might be needed in some cases
            ServicePointManager.DefaultConnectionLimit = 100;

            var client = new JabbRClient(server);

            // Subscribe to new messages
            client.MessageReceived += (message, room) =>
            {
                Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            };

            client.UserJoined += (user, room, isOwner) =>
            {
                Console.WriteLine("{0} joined {1}", user.Name, room);
            };

            client.UserLeft += (user, room) =>
            {
                Console.WriteLine("{0} left {1}", user.Name, room);
            };

            client.PrivateMessage += (from, to, message) =>
            {
                Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            };

            var wh = new ManualResetEventSlim();

            // Connect to chat
            client.Connect(userName, password).ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    wh.Set();
                }

                LogOnInfo info = task.Result;

                Console.WriteLine("Logged on successfully. You are currently in the following rooms:");
                foreach (var room in info.Rooms)
                {
                    Console.WriteLine(room.Name);
                    Console.WriteLine(room.Private);
                }

                Console.WriteLine("User id is {0}. Don't share this!", info.UserId);

                Console.WriteLine();

                // Get my user info
                User myInfo = client.GetUserInfo().Result;

                Console.WriteLine(myInfo.Name);
                Console.WriteLine(myInfo.LastActivity);
                Console.WriteLine(myInfo.Status);
                Console.WriteLine(myInfo.Country);

                // Join a room called test
                client.JoinRoom(roomName).ContinueWith(_ =>
                {
                    // Get info about the test room
                    client.GetRoomInfo(roomName).ContinueWith(t =>
                    {
                        Room roomInfo = t.Result;

                        Console.WriteLine("Users");

                        foreach (var u in roomInfo.Users)
                        {
                            Console.WriteLine(u.Name);
                        }

                        Console.WriteLine();

                        foreach (var u in roomInfo.Users)
                        {
                            if (u.Name != userName)
                            {
                                client.SendPrivateMessage(u.Name, "hey there, this is private right?");
                            }
                        }
                    });
                });

                // Set the flag
                client.SetFlag("bb");

                // Set the user note
                client.SetNote("This is testing a note");

                // Mark the client as typing
                client.SetTyping(roomName);

                // Clear the note
                client.SetNote(null);

                // Say hello to the room
                client.Send("Hello world", roomName);

                Console.WriteLine("Press any key to leave the room and disconnect");
                
                Console.Read();
  
                client.LeaveRoom(roomName).ContinueWith(_ =>
                {
                    client.Disconnect();

                    wh.Set();
                });
            });

            wh.Wait();
        }
Example #22
0
 /// <summary>
 /// This method initialises the JabbR.Client connection to the server and Starts it
 /// </summary>
 /// <param name="connectContinue"></param>
 internal static void InitializeJabbr()
 {
     App.Client = new JabbRClient(SettingsHelper.GetServerUrl());
 }
Example #23
0
        public override void Connect(FrontendManager fm, ServerModel server)
        {
            Trace.Call(fm, server);

            Server   = server;
            Username = server.Username;
            var chatName = String.Format("{0} {1}", Protocol, NetworkID);

            ProtocolChat = new ProtocolChatModel(NetworkID, chatName, this);
            ProtocolChat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
            Session.AddChat(Chat);
            Session.SyncChat(Chat);

            try {
                string url;
                if (server.Hostname.StartsWith("http://") ||
                    server.Hostname.StartsWith("https://"))
                {
                    url = server.Hostname;
                }
                else
                {
                    if (server.UseEncryption && server.Port == 443)
                    {
                        url = String.Format("https://{0}", server.Hostname);
                    }
                    else if (server.UseEncryption)
                    {
                        url = String.Format("https://{0}:{1}",
                                            server.Hostname, server.Port);
                    }
                    else if (!server.UseEncryption && server.Port == 80)
                    {
                        url = String.Format("http://{0}", server.Hostname);
                    }
                    else
                    {
                        url = String.Format("http://{0}:{1}",
                                            server.Hostname, server.Port);
                    }
                }
                // HACK: SignalR's ServerSentEventsTransport times out on Mono
                // for some reason and then fallbacks to LongPollingTransport
                // this takes 10 seconds though, so let's go LP directly
                Func <IClientTransport> transport = null;
                if (Type.GetType("Mono.Runtime") == null)
                {
                    transport = () => new AutoTransport(new DefaultHttpClient());
                }
                else
                {
                    transport = () => new LongPollingTransport();
                }
                var authProvider = new DefaultAuthenticationProvider(url);
                Client = new JabbRClient(url, authProvider, transport);
                Client.AutoReconnect      = true;
                Client.MessageReceived   += OnMessageReceived;
                Client.MeMessageReceived += OnMeMessageReceived;
                Client.UserLeft          += OnUserLeft;
                Client.UserJoined        += OnUserJoined;
                Client.JoinedRoom        += OnJoinedRoom;
                Client.PrivateMessage    += OnPrivateMessage;

                Me = CreatePerson(Username);
                Me.IdentityNameColored.ForegroundColor = new TextColor(0, 0, 255);
                Me.IdentityNameColored.BackgroundColor = TextColor.None;
                Me.IdentityNameColored.Bold            = true;

                Connect();
            } catch (Exception ex) {
#if LOG4NET
                Logger.Error(ex);
#endif
                var msg = CreateMessageBuilder().
                          AppendEventPrefix().
                          AppendErrorText(_("Connection failed! Reason: {0}"),
                                          ex.Message).
                          ToMessage();
                Session.AddMessageToChat(ProtocolChat, msg);
            }
        }
Example #24
0
        static void Main(string[] args)
        {
            string server   = "http://jabbr-staging.apphb.com/";
            string roomName = "test";
            string userName = "******";
            string password = "******";

            var client = new JabbRClient(server);

            // Subscribe to new messages
            client.MessageReceived += (message, room) =>
            {
                Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            };

            client.UserJoined += (user, room) =>
            {
                Console.WriteLine("{0} joined {1}", user.Name, room);
            };

            client.UserLeft += (user, room) =>
            {
                Console.WriteLine("{0} left {1}", user.Name, room);
            };

            client.PrivateMessage += (from, to, message) =>
            {
                Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            };

            // Connect to chat
            client.Connect(userName, password).ContinueWith(task =>
            {
                LogOnInfo info = task.Result;


                Console.WriteLine("Logged on successfully. You are currently in the following rooms:");
                foreach (var room in info.Rooms)
                {
                    Console.WriteLine(room.Name);
                    Console.WriteLine(room.Private);
                }

                Console.WriteLine("User id is {0}. Don't share this!", info.UserId);

                Console.WriteLine();

                // Get my user info
                User myInfo = client.GetUserInfo().Result;

                Console.WriteLine(myInfo.Name);
                Console.WriteLine(myInfo.LastActivity);
                Console.WriteLine(myInfo.Status);
                Console.WriteLine(myInfo.Country);


                client.JoinRoom(roomName);

                Console.WriteLine();

                // Join a room called test
                client.JoinRoom(roomName).ContinueWith(_ =>
                {
                    // Get info about the test room
                    client.GetRoomInfo(roomName).ContinueWith(t =>
                    {
                        Room roomInfo = t.Result;

                        Console.WriteLine("Users");

                        foreach (var u in roomInfo.Users)
                        {
                            Console.WriteLine(u.Name);
                        }

                        Console.WriteLine();

                        foreach (var u in roomInfo.Users)
                        {
                            if (u.Name != userName)
                            {
                                client.SendPrivateMessage(u.Name, "hey there, this is private right?");
                            }
                        }
                    });
                });

                // Set the flag
                client.SetFlag("bb");

                // Set the user note
                client.SetNote("This is testing a note");

                // Mark the client as typing
                client.SetTyping(roomName);

                // Clear the note
                client.SetNote(null);

                // Say hello to the room
                client.Send("Hello world", roomName);

                Console.WriteLine("Press any key to leave the room and disconnect");
                Console.Read();
                client.LeaveRoom(roomName).ContinueWith(_ =>
                {
                    client.Disconnect();
                });
            });

            Console.ReadKey();
        }
Example #25
0
        static void Main(string[] args)
        {

            




            string server = "http://jabbr.net/";
            string roomName = "test";

            var appDomain = "";






            var client = new JabbRClient(server, new SignalR.Client.Transports.LongPollingTransport());

            client.Connect("c47bba43-4992-4725-abc8-4dc9a6f3723d")
                .Then(logOnInfo =>
                {

                })
                    .OnError(ex =>
                    {

                    })
                    .Then(() =>
                    {

                    });

            //// Subscribe to new messages
            //client.MessageReceived += (message, room) =>
            //{
            //    Console.WriteLine("[{0}] {1}: {2}", message.When, message.User.Name, message.Content);
            //};

            //client.UserJoined += (user, room) =>
            //{
            //    Console.WriteLine("{0} joined {1}", user.Name, room);
            //};

            //client.UserLeft += (user, room) =>
            //{
            //    Console.WriteLine("{0} left {1}", user.Name, room);
            //};

            //client.PrivateMessage += (from, to, message) =>
            //{
            //    Console.WriteLine("*PRIVATE* {0} -> {1} ", from, message);
            //};

            //// Connect to chat
            //client.Connect(userName, password)
            //    .ContinueWith(task =>
            //{
            //    LogOnInfo info = task.Result;


            //    Console.WriteLine("Logged on successfully. You are currently in the following rooms:");
            //    foreach (var room in info.Rooms)
            //    {
            //        Console.WriteLine(room.Name);
            //        Console.WriteLine(room.Private);
            //    }

            //    Console.WriteLine("User id is {0}. Don't share this!", info.UserId);

            //    Console.WriteLine();

            //    // Get my user info
            //    User myInfo = client.GetUserInfo().Result;

            //    Console.WriteLine(myInfo.Name);
            //    Console.WriteLine(myInfo.LastActivity);
            //    Console.WriteLine(myInfo.Status);
            //    Console.WriteLine(myInfo.Country);


            //    client.JoinRoom(roomName);

            //    Console.WriteLine();

            //    // Join a room called test
            //    client.JoinRoom(roomName).ContinueWith(_ =>
            //    {
            //        // Get info about the test room
            //        client.GetRoomInfo(roomName).ContinueWith(t =>
            //        {
            //            Room roomInfo = t.Result;

            //            Console.WriteLine("Users");

            //            foreach (var u in roomInfo.Users)
            //            {
            //                Console.WriteLine(u.Name);
            //            }

            //            Console.WriteLine();

            //            foreach (var u in roomInfo.Users)
            //            {
            //                if (u.Name != userName)
            //                {
            //                    client.SendPrivateMessage(u.Name, "hey there, this is private right?");
            //                }
            //            }

            //        });
            //    });

            //    // Set the flag
            //    client.SetFlag("bb");

            //    // Set the user note
            //    client.SetNote("This is testing a note");

            //    // Mark the client as typing
            //    client.SetTyping(roomName);

            //    // Clear the note
            //    client.SetNote(null);

            //    // Say hello to the room
            //    client.Send("Hello world", roomName);

            //    Console.WriteLine("Press any key to leave the room and disconnect");
            //    Console.Read();
            //    client.LeaveRoom(roomName).ContinueWith(_ =>
            //    {
            //        client.Disconnect();
            //    });
            //});

            Console.ReadKey();
        }