void XmppClient_OnMessage(object sender, Matrix.Xmpp.Client.MessageEventArgs e) { //System.Threading.ThreadPool.QueueUserWorkItem(delegate //{ if (e.Message.Body != null && e.Message.Body.Length > 0 && e.Message.Type != MessageType.Error) { string messageBody = ""; System.Xml.Linq.XNamespace ns = "urn:xmpp:openpgp:0"; string pgpData = (string) ( from el in e.Message.Descendants(ns + "openpgp") select el ).FirstOrDefault(); if (pgpData != null) { messageBody = this.openPGP.Decrypt(pgpData); Log.Info("encrypted message " + e.Message.From + " " + messageBody); } else { messageBody = e.Message.Body; Log.Info("unencrypted message " + e.Message.From + " " + messageBody); } if (e.Message.XMucUser != null && this.OnInvit != null) { this.OnInvit(this, new MessageEventArgs(e.Message.From, e.Message.XMucUser.FirstElement.FirstAttribute.Value)); } else if (this.OnMessage != null && e.Message.Body != null) { var from = e.Message.From.ToString().Split('/'); if (from[1] != null && from[1].Equals(_username)) { return; } else { this.OnMessage(this, new MessageEventArgs(e.Message.From.ToString().Split('@')[0], e.Message.Body)); } } } else if (e.Message.Type == MessageType.GroupChat && e.Message.Subject != null && this.OnSubjectGroup != null) { this.OnSubjectGroup(this, new MessageEventArgs(e.Message.From, e.Message.Subject)); } else if (e.Message.Type == MessageType.Error) { Log.Error("OnMessage error " + e.Message.From + " " + e.Message.Body); Log.Error(e.Message.ToString()); } //}, null); }
public void MucManager_OnInvite(object sender, Matrix.Xmpp.Client.MessageEventArgs e) { Log.Info("Received an invite!!! " + e.Message.ToString() + " subject: " + e.Message.Subject); string jid = e.Message.From; this.mucManager.EnterRoom(e.Message.From, this._jid); if (this.OnInvit != null) { this.OnInvit(sender, new MessageEventArgs(e.Message.From, e.Message.XMucUser.FirstElement.FirstAttribute.Value)); } //if (this.OnJoinGroup != null) //{ // this.OnJoinGroup(this, jid.Split('@')[0]); //} // set up public event }
private void PubsubManager_OnEvent(object sender, Matrix.Xmpp.Client.MessageEventArgs e) { Log.Info("pep_onevent " + e.Message.From + " " + e.Message.Value); if (e.Message.Value != "") { string jid = e.Message.From; System.Xml.Linq.XNamespace ns = "urn:xmpp:openpgp:0"; try { string pubkey = (string) ( from el in e.Message.Descendants(ns + "pubkey") select el ).First(); this.openPGP.AddPublicKey(jid, pubkey); } catch (Exception ex) { Log.Error(e.Message.Value + " resulted in " + ex.Message); } } }