/// <summary> /// Send message to HarmonyHub to request Configuration. /// Result is parsed by OnIq based on ClientCommandType /// </summary> public void GetConfig() { EnsureConnection(); var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.ConfigDocument()); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); var iq = iqGrabber.SendIq(iqToSend, 10000); if (iq != null) { var match = IdentityRegex.Match(iq.InnerXml); if (match.Success) { RawConfig = match.Groups[1].ToString(); Config = null; try { Config = new JavaScriptSerializer().Deserialize<HarmonyConfigResult>(RawConfig); } catch { } } } }
/// <summary> /// Send message to HarmonyHub with UserAuthToken, wait for SessionToken /// </summary> /// <param name="userAuthToken"></param> /// <returns></returns> public string SwapAuthToken(string userAuthToken) { var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.LogitechPairDocument(userAuthToken)); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); iqGrabber.SendIq(iqToSend, 10); WaitForData(5); return _sessionToken; }
private void CleanupSession() { // This cleanup has only to be done if we were able to connect and teh XMPP Stream was started DestroyKeepAliveTimer(); m_CleanUpDone = true; StreamParser.Reset(); IqGrabber.Clear(); if (OnClose != null) { OnClose(this); } }
/// <summary> /// Send message to HarmonyHub with UserAuthToken, wait for SessionToken /// </summary> /// <param name="userAuthToken"></param> /// <returns></returns> public string SwapAuthToken(string userAuthToken) { EnsureConnection(); var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.LogitechPairDocument(userAuthToken)); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); var iq = iqGrabber.SendIq(iqToSend, 5000); if (iq != null) { var match = IdentityRegex.Match(iq.InnerXml); if (match.Success) { return match.Groups[1].ToString(); } } return null; }
/// <summary> /// Send message to HarmonyHub to request current activity /// Result is parsed by OnIq based on ClientCommandType /// </summary> public void GetCurrentActivity() { EnsureConnection(); var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.GetCurrentActivityDocument()); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); var iq = iqGrabber.SendIq(iqToSend, 5000); if (iq != null) { var match = IdentityRegex.Match(iq.InnerXml); if (match.Success) { CurrentActivity = match.Groups[1].ToString().Split('=')[1]; } } }
/// <summary> /// Creates a new Component Connection to a given server and port /// </summary> public XmppComponentConnection() { m_IqGrabber = new IqGrabber(this); }
/// <summary> /// Send message to HarmonyHub to request Configuration. /// Result is parsed by OnIq based on ClientCommandType /// </summary> public void GetConfig() { _clientCommand = ClientCommandType.GetConfig; var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.ConfigDocument()); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); iqGrabber.SendIq(iqToSend, 10); WaitForData(5); }
/// <summary> /// Send message to HarmonyHub to start a given activity /// Result is parsed by OnIq based on ClientCommandType /// </summary> /// <param name="activityId"></param> public void StartActivity(string activityId) { _clientCommand = ClientCommandType.StartActivity; var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.StartActivityDocument(activityId)); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); iqGrabber.SendIq(iqToSend, 10); WaitForData(5); }
/// <summary> /// Send message to HarmonyHub to request to press a button /// Result is parsed by OnIq based on ClientCommandType /// </summary> /// <param name="deviceId"></param> /// <param name="command"></param> public void PressButton(string deviceId, string command) { _clientCommand = ClientCommandType.PressButton; var iqToSend = new IQ { Type = IqType.get, Namespace = "", From = "1", To = "guest" }; iqToSend.AddChild(HarmonyDocuments.IRCommandDocument(deviceId, command)); iqToSend.GenerateId(); var iqGrabber = new IqGrabber(Xmpp); iqGrabber.SendIq(iqToSend, 5); WaitForData(5); }
public XmppClientConnection() : base() { m_IqGrabber = new IqGrabber(this); m_MessageGrabber = new MessageGrabber(this); m_PresenceGrabber = new PresenceGrabber(this); m_PresenceManager = new PresenceManager(this); m_RosterManager = new RosterManager(this); }