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(); }
public ChatWindowViewModel(RoomService roomService, ServiceLocator serviceLocator, JabbRClient client) { _roomService = roomService; _serviceLocator = serviceLocator; _client = client; Initialize(); }
public Bot2(string name, string password, string url) { Name = name; _url = url; _password = password; client = new JabbRClient(_url); }
private void InitializeClient() { _client = new JabbRClient(_url); _client.MessageReceived += (message, room) => { ProcessMessage(message, room); }; }
public AuthenticationService( JabbRClient jabbrClient, UserService userService, RoomService roomService) { _client = jabbrClient; _userService = userService; _roomService = roomService; }
private void InitializeClient() { _client = new JabbRClient(_url, new LongPollingTransport()); _client.MessageReceived += (message, room) => { ProcessMessage(message, room); }; }
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; }
private void InitializeClient() { client = new JabbRClient(_url, new LongPollingTransport()); client.MessageReceived += (message, room) => { ProcessMessage(message, room); }; client.UserJoined += (user, message) => { }; }
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)); } }
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; }
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 ); }
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; }
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; }
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(); }
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); } }); }
private void InitializeClient() { _client = new JabbRClient(_url); _client.MessageReceived += this.ProcessMessage; }
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,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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(); }
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(); }
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(); }
/// <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()); }
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); } }
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(); }
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(); }