示例#1
0
        public void envoieMove(Vector3 pos, Vector3 dir)
        {
            ZEvent eventMove = new ZEvent(IDjoueur, 2, pos.x, pos.y, pos.z, dir.x, dir.y, dir.z);

            byte[] evt = eventMove.toBinary();
            formatAndSend("u", evt);
        }
示例#2
0
        private void Install(string[] oPackagePathes)
        {
            Installer installer = new Installer(oPackagePathes);

            installer.SetEventInstalled((_installer) =>
            {
                Installer oInstaller = _installer as Installer;
                if (!oInstaller.IsSucess)
                {
                    if (mInstallCount < 2)
                    {
                        // 如果安装失败则重新加载,一共处理2次
                        LogMessage(MESSAGE_NORMALINFO, "资源安装出错,稍后会重新尝试!");
                        ZEvent oEvent = new ZEvent();
                        oEvent.AddListener(oEvent.GetType().Name, new DelayCaller((_delayCaller) =>
                        {
                            mInstallCount++;
                            LoadRemoteAsset();
                        }));
                        oEvent.DelayNotify(oEvent.GetType().Name, null, 10);
                    }
                    else
                    {
                        LogMessage(MESSAGE_NORMALINFO, "更新失败,请与管理员联系!");
                        CallError();
                    }
                }
                else
                {
                    LogMessage(MESSAGE_NORMALINFO, "更新成功,程序将在稍后启动!");
                    CallProgram();
                }
            });
            installer.Install();
        }
        public string EjecutarEvento(int tipo, int tec, int cmd, string info, string buffer, string aplicacion, int puerto, string tkns)
        {
            _logHandler.Info("////////////////////////////////// ejecutarEvento aplicacion: " + aplicacion + ", Puerto: " + puerto.ToString() + ", cmd: " + cmd.ToString());
            string cadenaEnviar = new ZEvent(tipo, tec, cmd, info, buffer).ArmarCadenaSocket();

            // Cerios abr 2020
            cadenaEnviar = cadenaEnviar + ZTag.ZTAG_I_TKNS + tkns + ZTag.ZTAG_F_TKNS;

            _logHandler.Info(cadenaEnviar);

            return(SocketClienteEnviar(cadenaEnviar, puerto, cmd, tkns));
        }
示例#4
0
        public void readSocket()
        {
            //readRessource();
            byte[] TabTaille = new byte[4];
            theStream.Read(TabTaille, 0, 4);
            int taille = BitConverter.ToInt32(TabTaille, 0);

            byte[] TabIdentifier = new byte[1];
            theStream.Read(TabIdentifier, 0, 1);
            char[] Identifier = System.Text.Encoding.ASCII.GetChars(TabIdentifier);
            Debug.Log(Identifier.Length);

            switch (Identifier[0])
            {
            case 'r':
                //Read Ressourse
                readRessource();
                break;

            case 'w':
                //Read Ressourse
                string str = readString(taille - 1);
                Debug.Log("reçu " + str);
                break;

            case 'u':
                //Event
                ZEvent monEvent = new ZEvent();
                monEvent.fromBinary(theStream);
                receiveMove(monEvent);
                break;

            case 'c':
                //connexion
                ZEvent maConn = new ZEvent();
                maConn.fromBinary(theStream);
                //receiveMove(maConn);
                IDjoueur = maConn.getEvent();
                //Debug.Log("connexion !! "+maConn.getEvent()+" "+maConn.getType()+" "+maConn.getPosition().x+" "+maConn.getPosition().y+" "+maConn.getPosition().z);
                //Debug.Log("connexion !! "+maConn.getEvent()+" "+maConn.getType()+" "+maConn.getDirection().x+" "+maConn.getDirection().y+" "+maConn.getDirection().z);

                break;

            default:
                taille = taille - 1;
                Debug.Log("type inconnue, je jette tout : " + taille + "Byte");
                byte[] dechet = new byte[taille];
                theStream.Read(dechet, 0, taille);
                break;
            }
        }
示例#5
0
        void Start()
        {
            setupSocket();
            ZEvent eventMove = new ZEvent((ulong)0, 2, 495.7633f, 0.0f, 495.411f, 0.0f, 0.0f, 0.0f);

            byte[] evt = eventMove.toBinary();
            formatAndSend("c", evt);
            readSocket();

            /*ThreadStart listen = new ThreadStart(readSocket);
             * Thread thread = new Thread(listen);
             * thread.Start();*/
            //closeSocket();
        }
示例#6
0
        public void receiveMove(ZEvent monEvent)
        {
            int ID = 0;

            if (monEvent.getEvent() == IDjoueur)
            {
                return;
            }
            if (Characters.TryGetValue(monEvent.getEvent(), out ID))
            {
                GameObject         o  = GameObject.Find("z@walk " + ID);
                AICharacterControl cc = (AICharacterControl)o.GetComponent(typeof(AICharacterControl));
                transform.position = monEvent.getPosition();
                //Debug.Log ("z@walk "+ID+" "+monEvent.getPosition().x+" "+monEvent.getPosition().y+" "+monEvent.getPosition().z+" ");
                //o.transform.forward = monEvent.transform.forward;
                cc.SetTarget(transform);
            }
            else
            {
                //on fait pop le zombie ou le characters
                Characters.Add(monEvent.getEvent(), (int)monEvent.getEvent());
            }
        }
示例#7
0
        public void LoadRemoteAsset()
        {
            WebAllLoader.WebAssetDir[] oDirs = new WebAllLoader.WebAssetDir[InteralVersions.Count];
            for (int i = oDirs.Length - 1; i >= 0; i--)
            {
                VersionData oData             = InteralVersions[i];
                WebAllLoader.WebAssetDir oDir = new WebAllLoader.WebAssetDir();
                oDir.Url      = Settings.ServerPackageUri + "/" + Path.GetFileNameWithoutExtension(oData.Name) + ".zip";
                oDir.SavePath = Settings.LocalPackageUri + "/package/" + Path.GetFileNameWithoutExtension(oData.Name) + ".zip";
                oDirs[i]      = oDir;
            }
            WebAllLoader allLoader = new WebAllLoader();

            allLoader.LoadAll(oDirs);
            allLoader.SetEventAllLoading((_allLoader) =>
            {
                LogMessage(MESSAGE_ASSETPROGRESS, ((int)(_allLoader.FinalProgress * 100)).ToString());
            });
            allLoader.SetEventOnError((_allLoader) =>
            {
                _allLoader.Close();
                LogMessage(MESSAGE_NORMALINFO, "资源下载终止, 稍后将会重新尝试!");
                ZEvent oEvent = new ZEvent();
                oEvent.AddListener(oEvent.GetType().Name, new DelayCaller((_caller) =>
                {
                    LoadRemoteAsset();
                }));
                oEvent.DelayNotify(oEvent.GetType().Name, null, 10);
            });
            allLoader.SetEventAllLoaded((_allLoader) =>
            {
                _allLoader.Close();
                LogMessage(MESSAGE_NORMALINFO, "资源下载完成,等待解压");
                Install(_allLoader.SavePaths);
            });
            allLoader.Start();
        }
示例#8
0
 public ZEventObject()
 {
     Event = new ZEvent();
 }
        private string EjecutarServicio(string idApl, string opcion, string dominio, string tkna, string log, string content, string buffer, int cmd, string metodo)
        {
            if (null != log)
            {
                _siLogActividad = (1 == Int32.Parse(log));
            }

            string cadenaXmlBody =
                ZTag.ZTAG_I_PARAMETROS +
                ZTag.ZTAG_I_FMT + "xml" + ZTag.ZTAG_F_FMT +
                ZTag.ZTAG_I_OPER + metodo + ZTag.ZTAG_F_OPER +
                ZTag.ZTAG_I_DATOS + JsonToXml(content) + ZTag.ZTAG_F_DATOS +
                ZTag.ZTAG_F_PARAMETROS;


            _logHandler.Info("************ ejecutarServicio: idApl: " + idApl + "-- opcion: " + opcion + "--operacion :" + metodo + "-- body json:" + content + "--body xml :" + cadenaXmlBody);

            // Ejecuta aplicacion
            _logHandler.Info("---- CM_APLICACION " + idApl + "Opc:" + opcion);

            switch (cmd)
            {
            // Cmd que se da cuando se entra parametros de logeo
            case ZCommandConst.CM_SOLOLOGIN:     // Retorna tkna
                buffer = ZTag.ZTAG_I_CMDEVT + "SOLOLOGIN" + ZTag.ZTAG_F_CMDEVT + buffer;
                return(_zsck.SocketClienteEnviar(buffer));

            case ZCommandConst.CM_EJECSERVICIO:
                // Arma buffer para enviar con parametros de logeo
                buffer =
                    ZTag.ZTAG_I_CMDEVT + "EJECUTAR" + ZTag.ZTAG_F_CMDEVT +
                    ZTag.ZTAG_I_TKNA + tkna + ZTag.ZTAG_F_TKNA +
                    ZTag.ZTAG_I_IPSC + "0000" + ZTag.ZTAG_F_IPSC +
                    ZTag.ZTAG_I_PSC + "0000" + ZTag.ZTAG_F_PSC +
                    ZTag.ZTAG_I_CLIENTE + "web" + ZTag.ZTAG_F_CLIENTE +
                    ZTag.ZTAG_I_IDAPLI + idApl + ZTag.ZTAG_F_IDAPLI +
                    ZTag.ZTAG_I_LOG + log + ZTag.ZTAG_F_LOG +
                    ZTag.ZTAG_I_OPC + opcion + ZTag.ZTAG_F_OPC +
                    ZTag.ZTAG_I_PARAMETROS + "si" + ZTag.ZTAG_F_PARAMETROS; // Indica que es servicio

                _logHandler.Info("---- antes CM_APLICACION EJECUTAR SERVICIO Buffer: " + buffer);
                break;
            }

            string cadena = _zsck.SocketClienteEnviar(buffer);

            _logHandler.Info("---- despues CM_APLICACION EJECUTAR SERVICIO resultado: " + cadena);

            //Obtiene puerto donde se ejecuta la aplciacion
            int    puertoSrvAplicacion = Int32.Parse(_zsck.GetTagValue(ZTag.ZTAG_PSC, cadena));
            string tkns = _zsck.GetTagValue(ZTag.ZTAG_TKNS, cadena);

            //_zsck.SetTknsOpenSocket(puertoSrvAplicacion, tkns);
            _logHandler.Info(puertoSrvAplicacion);
            _logHandler.Info(tkns);

            _logHandler.Info("---- CM_EJECSERVICIO");

            string datoTkns = ZTag.ZTAG_I_TKNS + tkns + ZTag.ZTAG_F_TKNS;

            string cadEvento = new ZEvent(2, 0, ZCommandConst.CM_EJECSERVICIO, "", "").ArmarCadenaSocket();

            string cadenaEnviar = cadEvento + datoTkns + cadenaXmlBody;

            return(_zsck.SocketClienteEnviar(cadenaEnviar, puertoSrvAplicacion, ZCommandConst.CM_EJECSERVICIO, tkns));
        }
        private string EjecutarServicio(string idApl, string opcion, string tkna, int log, object objectBuffer, int cmd, string metodo, string remoteIpAddress)
        {
            siLogActividad = log == 1;

            string xmlBuffer = string.Empty;

            if (objectBuffer != null)
            {
                if (objectBuffer is Dictionary <string, string> )
                {
                    xmlBuffer = _ztag.DictionaryToXml(objectBuffer as Dictionary <string, string>);
                }
                else
                {
                    xmlBuffer = _ztag.JsonToXml(objectBuffer.ToString());
                }
            }

            string cadenaXmlBody =
                ZTag.ZTAG_I_PARAMETROS +
                ZTag.ZTAG_I_FMT + "xml" + ZTag.ZTAG_F_FMT +
                ZTag.ZTAG_I_OPER + metodo + ZTag.ZTAG_F_OPER +
                xmlBuffer +
                ZTag.ZTAG_F_PARAMETROS;

            string localIP = LocalIPAddress().ToString();

            // Ejecuta aplicacion
            _logHandler.Info("ZSocket EjecutarServicio CM_APLICACION " + idApl + ", Opc:" + opcion + ", remoteIP: " + remoteIpAddress + ", localIP: " + localIP);

            string buffer = string.Empty;

            switch (cmd)
            {
            // Cmd que se da cuando se entra parametros de logeo
            case ZCommandConst.CM_EJECSERVICIO:
                // Arma buffer para enviar con parametros de logeo
                buffer =
                    ZTag.ZTAG_I_CMDEVT + "EJECUTAR" + ZTag.ZTAG_F_CMDEVT +
                    ZTag.ZTAG_I_TKNA + tkna + ZTag.ZTAG_F_TKNA +
                    ZTag.ZTAG_I_CLIENTE + "web" + ZTag.ZTAG_F_CLIENTE +
                    ZTag.ZTAG_I_IPCLI + remoteIpAddress + ZTag.ZTAG_F_IPCLI +
                    ZTag.ZTAG_I_IPMID + localIP + ZTag.ZTAG_I_IPMID +
                    ZTag.ZTAG_I_IDAPLI + idApl + ZTag.ZTAG_F_IDAPLI +
                    ZTag.ZTAG_I_LOG + log + ZTag.ZTAG_F_LOG +
                    ZTag.ZTAG_I_OPC + opcion + ZTag.ZTAG_F_OPC +
                    ZTag.ZTAG_I_PARAMETROS + "si" + ZTag.ZTAG_F_PARAMETROS; // Indica que es servicio
                break;
            }

            string cadena = SocketClienteEnviar(buffer);

            //Obtiene puerto donde se ejecuta la aplciacion
            int    puertoSrvAplicacion = Int32.Parse(GetTagValue(ZTag.ZTAG_PSC, cadena));
            string tkns = GetTagValue(ZTag.ZTAG_TKNS, cadena);

            _logHandler.Info($"ZSocket puertoSrvAplicacion: {puertoSrvAplicacion}, tkns: {tkns}");

            string datoTkns = ZTag.ZTAG_I_TKNS + tkns + ZTag.ZTAG_F_TKNS;

            string cadEvento = new ZEvent(2, 0, ZCommandConst.CM_EJECSERVICIO, "", "").ArmarCadenaSocket();

            string cadenaEnviar = cadEvento + datoTkns + cadenaXmlBody;

            return(SocketClienteEnviar(cadenaEnviar, puertoSrvAplicacion, ZCommandConst.CM_EJECSERVICIO, tkns));
        }