private void SendMessage(OverLayMessage msg)
        {
            string sendmsg = JsonConvert.SerializeObject(msg);

            if (activeHandler != null)
            {
                activeHandler.SendMessage(sendmsg);
            }
        }
 private bool TryParseJSON(string data, out OverLayMessage msg)
 {
     msg = null;
     try
     {
         msg = JsonConvert.DeserializeObject <OverLayMessage>(data);
         return(msg != null);
     }
     catch
     { }
     return(false);
 }
        private void Channel_OnChannelFollow(object sender, FollowEventArgs args)
        {
            FollowMsg msg = new FollowMsg()
            {
                FollowMessage = string.Format("{0} Followed", args.Follower)
            };
            string         data       = JsonConvert.SerializeObject(msg);
            OverLayMessage overlaymsg = new OverLayMessage()
            {
                method = "follow", data = data
            };

            SendMessage(overlaymsg);
        }
 public void SendModuleMessage(string module, string messageinfo, string message)
 {
     //  This is supposed to be from the module...  send a message TO the overlay
     if (activeHandler != null)
     {
         OverLayMessage msg = new OverLayMessage()
         {
             id     = 1,
             module = module,
             method = messageinfo,
             data   = message
         };
         SendMessage(msg);
     }
 }
        private void ComposeCssAdditionMessage(string module, string cssfile)
        {
            OverLayMessage overlaymsg = new OverLayMessage()
            {
                module = "overlaymessage",
                method = "newstylesheet",
                //id = ?
                data = JsonConvert.SerializeObject(new newCss()
                {
                    cssURI = cssfile, module = module
                })
            };

            SendMessage(overlaymsg);
        }
        private void ComposeJSAdditionMessage(string module, string javascriptfile)
        {
            OverLayMessage overlaymsg = new OverLayMessage()
            {
                module = "overlaymessage",
                method = "newjavascript",
                //id = ?
                data = JsonConvert.SerializeObject(new newJavaScript()
                {
                    JSUri = javascriptfile, module = module
                })
            };

            SendMessage(overlaymsg);
        }
        private void Handler_OnText(object sender, WebsocketTextEventArgs text)
        {
            //BotOutput.Instance.LogMessage("Info", "[WEBSOCKET]: We got some text data");
            //var item = sender as WebSocketHttpServerHandler;
            //item.SendMessage(text.Data);
            OverLayMessage msg = null;

            if (TryParseJSON(text.Data, out msg))
            {
                if (m_RegisteredHandlers.ContainsKey(msg.module, msg.method))
                {
                    var item = m_RegisteredHandlers[msg.module, msg.method];
                    if (item != null)
                    {
                        item(msg.module, msg.method, msg.data);
                    }
                    // This is supposed to send a message from the overlay back to the module over the interface.
                }
                else
                {
                    // parse it ourselves for our own reasons?
                }
            }
        }