Пример #1
0
        public void runThread()
        {
            logwrite.write("Finesse FinesseKeepAlive", "Finesse FinesseKeepAlive Thread Start!!");

            try
            {
                while (true)
                {
                    Thread.Sleep(10000);
                    string agentID  = agent.getAgentID();
                    string serverIP = finesseClient.getCurrentServerIP();

                    FinesseDomain domainVO = FinesseDomain.getInstance();
                    string        domain   = domainVO.getFinesseDomain();

                    string strMsg = @"<iq id='" + agentID + "@" + serverIP + "/pidgin' to='" + domain + "' type='get' from='" + agentID + "@" + serverIP + "/pidgin'><ping xmlns='urn:xmpp:ping'/></iq>";

                    logwrite.write("Finesse FinesseKeepAlive", "SEND -> " + strMsg);
                    writer.WriteLine(strMsg);
                    writer.Flush();
                }
            }
            catch (Exception e)
            {
                if (writer != null)
                {
                    writer.Close();
                }
                if (sock != null)
                {
                    sock.Close();
                }
            }
        }
Пример #2
0
        private int startPreProcess()
        {
            try
            {
                int tempindex = 0;

                FinesseDomain domain = FinesseDomain.getInstance();

                UTIL   util   = new UTIL();
                string strID  = "insungUCDev";
                Random random = new Random();
                int    ranNum = random.Next(1, 10);

                string strMsg = @"<?xml version='1.0' ?><stream:stream to='" + (string)currentServer["IP"] + "' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }

                strMsg = @"<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN' xmlns:ga='http://www.google.com/talk/protocol/auth' ga:client-uses-full-bind-result='true'>" + util.AuthBase64_IDAndPw(agent.getAgentID(), agent.getAgentPwd()) + "</auth>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }

                strMsg = @"<stream:stream to='" + (string)currentServer["IP"] + "' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }

                strMsg = @"<iq type='set' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>isi</resource></bind></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;

                strMsg = @"<iq type='set' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;

                strMsg = @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "' to='" + domain.getFinesseDomain() + "'><query xmlns='http://jabber.org/protocol/disco#items'/></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;

                strMsg = @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "' to='" + domain.getFinesseDomain() + "'><query xmlns='http://jabber.org/protocol/disco#info'/></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;

                strMsg  = @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "'><vCard xmlns='vcard-temp'/></iq>";
                strMsg += @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "'><query xmlns='jabber:iq:roster'/></iq>";
                strMsg += @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "' to='" + domain.getFinesseDomain() + "'><query xmlns='http://jabber.org/protocol/disco#items' node='http://jabber.org/protocol/commands'/></iq>";
                strMsg += @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "' to='proxy.eu.jabber.org'><query xmlns='http://jabber.org/protocol/bytestreams'/></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;

                strMsg = @"<iq type='get' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "' to='proxy." + domain.getFinesseDomain() + "'><query xmlns='http://jabber.org/protocol/bytestreams'/></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;

                strMsg  = @"<presence><priority>1</priority><c xmlns='http://jabber.org/protocol/caps' node='http://pidgin.im/' hash='sha-1' ver='I22W7CegORwdbnu0ZiQwGpxr0Go='/><x xmlns='vcard-temp:x:update'><photo/></x></presence>";
                strMsg += @"<iq type='set' id='" + strID + util.lpad(Convert.ToString(ranNum), "a", 3) + "'><pubsub xmlns='http://jabber.org/protocol/pubsub'><publish node='http://jabber.org/protocol/tune'><item><tune xmlns='http://jabber.org/protocol/tune'/></item></publish></pubsub></iq>";
                send(strMsg);
                if (recv(tempindex++) != ERRORCODE.SUCCESS)
                {
                    return(ERRORCODE.FAIL);
                }
                ranNum++;
            }
            catch (Exception e)
            {
                logwrite.write("startPreProcess", e.ToString());
                return(ERRORCODE.FAIL);
            }

            return(ERRORCODE.SUCCESS);
        }