Esempio n. 1
0
        private bool GetNecessaryParam(string html, string cookie)
        {
            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(html);
            var node = doc.DocumentNode.SelectSingleNode("/html/head/script[10]/text()");

            if (node == null)
            {
                return(false);
            }

            //拿到主界面的token和id
            Regex  regex = new Regex("tk\":\"(.*)\",\"no\":(.*)},.*(?<=ID)\"(.*)\"(?=Name)");
            var    mc    = regex.Match(html);
            string token = mc.Groups[1].Value;
            string rid   = mc.Groups[2].Value;
            string id    = mc.Groups[3].Value.Replace(":", "").Replace(",", "");

            SocketInitDto = new SocketInitDto()
            {
                Id       = id,
                Rid      = rid,
                LocalUrl = localUrl,
                Token    = token,
                Cookie   = cookie
            };
            if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(rid) || string.IsNullOrEmpty(id))
            {
                logger.Error("Cannot parse param. html = " + html);
                return(false);
            }
            return(true);
        }
Esempio n. 2
0
        public void Init(SocketInitDto dto)
        {
            socket            = new WebSocketSharp.WebSocket(dto.WssUrl);
            socket.WaitTime   = new TimeSpan(0, 0, 0, timeOut);
            socket.Origin     = dto.LocalUrl;
            socket.OnMessage += Socket_OnMessage;
            socket.OnError   += Socket_OnError;
            socket.OnClose   += Socket_OnClose;

            checkTimer           = new Timer();
            checkTimer.Interval  = 25 * 1000;
            checkTimer.AutoReset = true;
            checkTimer.Elapsed  += HeartCheck;
        }