//вход в онлайн юзера private void MyXmppClient_OnPresence(object sender, PresenceEventArgs e) { ConnectionModel.Instance.EventList.Add(new OnPresence(e)); string jid = e.Presence.From.Bare; var contact = Contact.FirstOrDefault(c => c.Jid == jid); if (contact != null) contact.SetOnlineStateFromPresence(e.Presence); //проверяем статус человека вошедшего в сеть. }
private Task Client_OnPresenceUnsubscribed(object Sender, PresenceEventArgs e) { lock (this.subscriptionsByThing) { if (!this.subscriptionsByJID.TryGetValue(e.From, out Dictionary <string, Subscription> Subscriptions)) { return(Task.CompletedTask); } this.subscriptionsByJID.Remove(e.From); foreach (Subscription Subscription in Subscriptions.Values) { Subscription.Active = false; foreach (IThingReference Ref in Subscription.NodeReferences) { if (!this.subscriptionsByThing.TryGetValue(Ref, out LinkedList <Subscription> Subscriptions2)) { continue; } if (!Subscriptions2.Remove(Subscription)) { continue; } if (Subscriptions2.First is null) { this.subscriptionsByThing.Remove(Ref); } } } } return(Task.CompletedTask); }
private Task XmppClient_OnPresenceSubscribe(object Sender, PresenceEventArgs e) { StringBuilder Markdown = new StringBuilder(); Markdown.Append("Presence subscription request received from **"); Markdown.Append(MarkdownDocument.Encode(e.FromBareJID)); Markdown.Append("**. You can accept or decline the request from the roster configuration in the Administration portal."); Gateway.SendNotification(Markdown.ToString()); string[] TabIDs = this.GetTabIDs(); if (TabIDs.Length > 0) { string Json = JSON.Encode(new KeyValuePair <string, object>[] { new KeyValuePair <string, object>("bareJid", e.FromBareJID), new KeyValuePair <string, object>("html", this.RosterItemsHtml(new RosterItem[0], new PresenceEventArgs[] { e })) }, false); Task _ = ClientEvents.PushEvent(TabIDs, "UpdateRosterItem", Json, true, "User"); } return(Task.CompletedTask); }
private Task DeclineRequest(HttpRequest Request, HttpResponse Response) { Gateway.AssertUserAuthenticated(Request, this.ConfigPrivilege); if (!Request.HasData) { throw new BadRequestException(); } object Obj = Request.DecodeData(); if (!(Obj is string JID)) { throw new BadRequestException(); } Response.ContentType = "text/plain"; XmppClient Client = Gateway.XmppClient; PresenceEventArgs SubscriptionRequest = Client.GetSubscriptionRequest(JID); if (SubscriptionRequest is null) { return(Response.Write("0")); } else { SubscriptionRequest.Decline(); Log.Informational("Declining presence subscription request.", SubscriptionRequest.FromBareJID); this.RosterItemRemoved(JID); return(Response.Write("1")); } }
void XmppClient_OnPresence(object sender, PresenceEventArgs e) { Console.WriteLine("OnPresence"); try { if (e.Presence.From.User == "testuser2") { // hack for purposes of demo this.session = e.Presence.From.Resource; // here we send our presence directly which triggers them asking us for caps Console.WriteLine("Sending presence direct"); Matrix.Xmpp.Client.Presence p = new Matrix.Xmpp.Client.Presence(); p.From = "[email protected]/Matrix-for-Android"; p.To = "[email protected]/" + this.session; p.Caps = new Matrix.Xmpp.Capabilities.Caps(); p.Caps.Node = "http://legion.mobi/"; p.Caps.SetVersion(new Matrix.Xmpp.Disco.Info("")); xmppClient.Send(p); } } catch (System.Exception ex) { Console.WriteLine(ex.ToString()); } }
private void Client_OnPresence(object Sender, PresenceEventArgs e) { Dictionary <string, Subscription> Subscriptions; lock (this.subscriptionsByThing) { if (!this.subscriptionsByJID.TryGetValue(e.From, out Subscriptions)) { return; } } foreach (Subscription Subscription in Subscriptions.Values) { Subscription.Availability = e.Availability; if (e.Availability != Availability.Offline && Subscription.SupressedTrigger) { Subscription.SupressedTrigger = false; Subscription.LastTrigger = DateTime.Now; this.TriggerSubscription(Subscription); } } }
private void xmppClient_OnBeforeSendPresence(object sender, PresenceEventArgs e) { // add custom information to outgoing Presences when desired //e.Presence.Add(new XElement("foo")); //e.Presence.Muc.History = new Matrix.Xmpp.Muc.History(); //e.Presence.Muc.History.MaxCharacters = 0; }
private void xmppClient_OnPresence(object sender, PresenceEventArgs e) { DisplayEvent(string.Format("OnPresence\t{0}", e.Presence.From)); }
public OnPresence(PresenceEventArgs e) { LogMessage = e.Presence.From + " => вошел в онлайн " + DateTime.Now.ToString("h:mm:ss"); }
private void PresenceCallback(object sender, PresenceEventArgs e) { var mucX = e.Presence.MucUser; if (mucX == null) { if (e.Presence.Error.Type == Matrix.Xmpp.Base.ErrorType.Auth) { if (e.Presence.Error.FirstAttribute.Value == "407") { MessageBox.Show("Unauthorized!"); this.Close(); return; } } } // check for status code 201, this means the room is not ready to use yet // we request an instant room and accept the and accept the default configuration by the server if (mucX.HasStatus(201)) // 201 = room is awaiting configuration.d mm.RequestInstantRoom(_roomJid); var lvi = FindListViewItem(e.Presence.From); if (lvi != null) { if (e.Presence.Type == PresenceType.Unavailable) { lvi.Remove(); } else { int imageIdx = Util.GetRosterImageIndex(e.Presence); lvi.ImageIndex = imageIdx; //lvi.SubItems[1].Text = (e.Presence.Status ?? ""); var u = e.Presence.MucUser; if (u != null) { lvi.SubItems[1].Text = u.Item.Affiliation.ToString(); lvi.SubItems[2].Text = u.Item.Role.ToString(); //string bare = e.Presence.From.Resource + "@" + FrmLogin.Instance.HostName; //listAddress[lvi.SubItems[3].Text] = bare; //lvi.SubItems[3].Text = bare; } } } else { int imageIdx = Util.GetRosterImageIndex(e.Presence); var lv = new ListViewItem(e.Presence.From.Resource) { Tag = e.Presence.From.ToString() }; //lv.SubItems.Add(e.Presence.Status ?? ""); var u = e.Presence.MucUser; if (u != null) { lv.SubItems.Add(u.Item.Affiliation.ToString()); lv.SubItems.Add(u.Item.Role.ToString()); //string bare = e.Presence.From.Resource + "@" + FrmLogin.Instance.HostName; //lv.SubItems.Add(bare); //if (!listAddress.ContainsKey(bare)) //{ // listAddress.Add(bare, bare); //} } lv.ImageIndex = imageIdx; lvwRoster.Items.Add(lv); } }
private static void XmppClient_OnPresenceUnsubscribe(object Sender, PresenceEventArgs e) { e.Accept(); }
private void PresenceCallback(object sender, PresenceEventArgs e) { var mucX = e.Presence.MucUser; // check for status code 201, this means the room is not ready to use yet // we request an instant room and accept the and accept the default configuration by the server if (mucX != null && mucX.HasStatus(201)) // 201 = room is awaiting configuration. { StaticClass2.muc.RequestInstantRoom(j); } if (treeView1.Nodes.Count == 0) { TreeNode node = (new TreeNode(e.Presence.From.ToString())); node.Tag = e.Presence.From.ToString(); treeView1.Nodes.Add(node); } TreeNode node2 = new TreeNode(e.Presence.MucUser.ToString()); node2.Tag = e.Presence.MucUser.ToString(); treeView1.Nodes[0].Nodes.Add(node2); /* * var lvi = FindListViewItem(e.Presence.From); * if (lvi != null) * { * if (e.Presence.Type == PresenceType.Unavailable) * { * lvi.Remove(); * } * else * { * int imageIdx = Util.GetRosterImageIndex(e.Presence); * lvi.ImageIndex = imageIdx; * lvi.SubItems[1].Text = (e.Presence.Status ?? ""); * * var u = e.Presence.MucUser; * if (u != null) * { * lvi.SubItems[2].Text = u.Item.Affiliation.ToString(); * lvi.SubItems[3].Text = u.Item.Role.ToString(); * } * } * } * else * { * int imageIdx = Util.GetRosterImageIndex(e.Presence); * * var lv = new ListViewItem(e.Presence.From.Resource) { Tag = e.Presence.From.ToString() }; * * lv.SubItems.Add(e.Presence.Status ?? ""); * * var u = e.Presence.MucUser; * if (u != null) * { * lv.SubItems.Add(u.Item.Affiliation.ToString()); * lv.SubItems.Add(u.Item.Role.ToString()); * } * lv.ImageIndex = imageIdx; * lvwRoster.Items.Add(lv); * }*/ }
private void presenceManager_OnSubscribe(object sender, PresenceEventArgs e) { presenceManager.ApproveSubscriptionRequest(e.Presence.From); //presenceManager.DenySubscriptionRequest(e.Presence.From); }
internal void OnContactPresenceChanged(object sender, PresenceEventArgs args) { ContactPresenceChanged.Raise(sender, args); }
void xmppClient_OnBeforeSendPresence(object sender, PresenceEventArgs e) { DisplayEvent("OnBeforeSendPresence"); }
private void xmppClient_OnBeforeSendPresence(object sender, PresenceEventArgs e) { // add custom information to outgoing Presences when desired //e.Presence.Add(new XElement("foo")); }
void xmppClient_OnPresence(object sender, PresenceEventArgs e) { DisplayEvent("OnPresence"); string uniqueId = Matrix.Util.Hash.Sha1HashHex(e.Presence.From.Bare); Clients.Client(Context.ConnectionId).onPresence( uniqueId, e.Presence.From.Bare, e.Presence.Type == PresenceType.unavailable ? "Offline" : ShowToString(e.Presence.Show), e.Presence.Status ?? "" ); }
private void PresenceCallback(object sender, PresenceEventArgs e) { var mucX = e.Presence.MucUser; if (mucX == null) { if (e.Presence.Error.Type == Matrix.Xmpp.Base.ErrorType.Auth) { if (e.Presence.Error.FirstAttribute.Value == "407") { MessageBox.Show("Unauthorized!"); this.Close(); return; } } } // check for status code 201, this means the room is not ready to use yet // we request an instant room and accept the and accept the default configuration by the server if (mucX.HasStatus(201)) // 201 = room is awaiting configuration.d { mm.RequestInstantRoom(_roomJid); } var lvi = FindListViewItem(e.Presence.From); if (lvi != null) { if (e.Presence.Type == PresenceType.Unavailable) { lvi.Remove(); } else { int imageIdx = Util.GetRosterImageIndex(e.Presence); lvi.ImageIndex = imageIdx; //lvi.SubItems[1].Text = (e.Presence.Status ?? ""); var u = e.Presence.MucUser; if (u != null) { lvi.SubItems[1].Text = u.Item.Affiliation.ToString(); lvi.SubItems[2].Text = u.Item.Role.ToString(); //string bare = e.Presence.From.Resource + "@" + FrmLogin.Instance.HostName; //listAddress[lvi.SubItems[3].Text] = bare; //lvi.SubItems[3].Text = bare; } } } else { int imageIdx = Util.GetRosterImageIndex(e.Presence); var lv = new ListViewItem(e.Presence.From.Resource) { Tag = e.Presence.From.ToString() }; //lv.SubItems.Add(e.Presence.Status ?? ""); var u = e.Presence.MucUser; if (u != null) { lv.SubItems.Add(u.Item.Affiliation.ToString()); lv.SubItems.Add(u.Item.Role.ToString()); //string bare = e.Presence.From.Resource + "@" + FrmLogin.Instance.HostName; //lv.SubItems.Add(bare); //if (!listAddress.ContainsKey(bare)) //{ // listAddress.Add(bare, bare); //} } lv.ImageIndex = imageIdx; lvwRoster.Items.Add(lv); } }
private void xmppClient_OnPresence(object sender, PresenceEventArgs e) { DisplayEvent(string.Format("OnPresence\t{0}", e.Presence.From)); if (e.Presence.Type == PresenceType.Subscribe) { //presenceManager.ApproveSubscriptionRequest(e.Presence.From); var item = listContacts.Items[e.Presence.From.Bare] as RosterListViewItem; if (item != null) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); } else { var input = new FrmAddUser(_dictContactGroups, true, xmppClient); input.Address = e.Presence.From; if (input.ShowDialog() == DialogResult.OK) { _dictContactGroups = input.DictContactGroups; var rm = new RosterManager(xmppClient); Jid jid = input.Address; rm.Add(jid, input.Name, input.Group); var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); //string reason = input.Message; //pm.Subscribe(jid, reason, input.Name); } } } else if (e.Presence.Type == PresenceType.Subscribed) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); } else if (e.Presence.Type == PresenceType.Unsubscribe) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); var rm = new RosterManager(xmppClient); Jid jid = e.Presence.From; rm.Remove(jid); } else if (e.Presence.Type == PresenceType.Unsubscribed) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); var rm = new RosterManager(xmppClient); Jid jid = e.Presence.From; rm.Remove(jid); } else { var item = listContacts.Items[e.Presence.From.Bare] as RosterListViewItem; if (item != null) { item.ImageIndex = Util.GetRosterImageIndex(e.Presence); string resource = e.Presence.From.Resource; if (e.Presence.Type != PresenceType.Unavailable) { if (!item.Resources.Contains(resource)) item.Resources.Add(resource); } else { if (item.Resources.Contains(resource)) item.Resources.Remove(resource); } } } }
/// <summary> /// Event arguments for Availability events. /// </summary> /// <param name="e">Presence event arguments.</param> /// <param name="HasE2E">If End-to-End encryption information was found in presence stanza.</param> /// <param name="HasP2P">If Peer-to-peer address information was found in presence stanza.</param> public AvailableEventArgs(PresenceEventArgs e, bool HasE2E, bool HasP2P) { this.presence = e; this.hasE2E = HasE2E; this.hasP2P = HasP2P; }
private void xmppClient_OnPresence(object sender, PresenceEventArgs e) { DisplayEvent(string.Format("OnPresence\t{0}", e.Presence.From)); if (e.Presence.Type == PresenceType.Subscribe) { //presenceManager.ApproveSubscriptionRequest(e.Presence.From); var item = listContacts.Items[e.Presence.From.Bare] as RosterListViewItem; if (item != null) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); } else { var input = new FrmAddUser(_dictContactGroups, true, xmppClient); input.Address = e.Presence.From; if (input.ShowDialog() == DialogResult.OK) { _dictContactGroups = input.DictContactGroups; var rm = new RosterManager(xmppClient); Jid jid = input.Address; rm.Add(jid, input.Name, input.Group); var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); //string reason = input.Message; //pm.Subscribe(jid, reason, input.Name); } } } else if (e.Presence.Type == PresenceType.Subscribed) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); } else if (e.Presence.Type == PresenceType.Unsubscribe) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); var rm = new RosterManager(xmppClient); Jid jid = e.Presence.From; rm.Remove(jid); } else if (e.Presence.Type == PresenceType.Unsubscribed) { var pm = new PresenceManager(xmppClient); pm.ApproveSubscriptionRequest(e.Presence.From); var rm = new RosterManager(xmppClient); Jid jid = e.Presence.From; rm.Remove(jid); } else { var item = listContacts.Items[e.Presence.From.Bare] as RosterListViewItem; if (item != null) { item.ImageIndex = Util.GetRosterImageIndex(e.Presence); string resource = e.Presence.From.Resource; if (e.Presence.Type != PresenceType.Unavailable) { if (!item.Resources.Contains(resource)) { item.Resources.Add(resource); } } else { if (item.Resources.Contains(resource)) { item.Resources.Remove(resource); } } } } }
private void Client_OnPresenceSubscribe(object Sender, PresenceEventArgs e) { this.connections.Owner.Dispatcher.BeginInvoke(new ParameterizedThreadStart(this.PresenceSubscribe), e); }
void xmppClient_OnPresence(object sender, PresenceEventArgs e) { DisplayEvent("OnPresence"); DisplayEvent(String.Format(" ==> From:{0} Show:{1} Status:{2}", e.Presence.From, e.Presence.Show.ToString(), e.Presence.Status)); }
void EndpointIdentityManager_PresenceNotificationReceived(object sender, PresenceEventArgs e) { BuildEndpointTree(); }
private void PresenceCallback(object sender, PresenceEventArgs e) { var mucX = e.Presence.MucUser; // check for status code 201, this means the room is not ready to use yet // we request an instant room and accept the and accept the default configuration by the server if (mucX.HasStatus(201)) // 201 = room is awaiting configuration. mm.RequestInstantRoom(_roomJid); var lvi = FindListViewItem(e.Presence.From); if (lvi != null) { if (e.Presence.Type == PresenceType.unavailable) { lvi.Remove(); } else { int imageIdx = Util.GetRosterImageIndex(e.Presence); lvi.ImageIndex = imageIdx; lvi.SubItems[1].Text = (e.Presence.Status ?? ""); var u = e.Presence.MucUser; if (u != null) { lvi.SubItems[2].Text = u.Item.Affiliation.ToString(); lvi.SubItems[3].Text = u.Item.Role.ToString(); } } } else { int imageIdx = Util.GetRosterImageIndex(e.Presence); var lv = new ListViewItem(e.Presence.From.Resource) {Tag = e.Presence.From.ToString()}; lv.SubItems.Add(e.Presence.Status ?? ""); var u = e.Presence.MucUser; if (u != null) { lv.SubItems.Add(u.Item.Affiliation.ToString()); lv.SubItems.Add(u.Item.Role.ToString()); } lv.ImageIndex = imageIdx; lvwRoster.Items.Add(lv); } }