Example #1
0
        protected void _OnResponse(ServerToClientOpCode id, byte[] args)
        {
            if (id == ServerToClientOpCode.Ping)
            {
                Ping = _PingTimeCounter.Ticks;
                _StartPing();
            }
            else if (id == ServerToClientOpCode.SetProperty)
            {
                PackageSetProperty data = args.ToPackageData <PackageSetProperty>(_Serializer);
                _UpdateSetProperty(data.EntityId, data.Property, data.Value);
            }

            else if (id == ServerToClientOpCode.InvokeEvent)
            {
                PackageInvokeEvent data = args.ToPackageData <PackageInvokeEvent>(_Serializer);
                _InvokeEvent(data.EntityId, data.Event, data.HandlerId, data.EventParams);
            }
            else if (id == ServerToClientOpCode.ErrorMethod)
            {
                PackageErrorMethod data = args.ToPackageData <PackageErrorMethod>(_Serializer);

                _ErrorReturnValue(data.ReturnTarget, data.Method, data.Message);
            }
            else if (id == ServerToClientOpCode.ReturnValue)
            {
                PackageReturnValue data = args.ToPackageData <PackageReturnValue>(_Serializer);
                _SetReturnValue(data.ReturnTarget, data.ReturnValue);
            }
            else if (id == ServerToClientOpCode.LoadSoulCompile)
            {
                PackageLoadSoulCompile data = args.ToPackageData <PackageLoadSoulCompile>(_Serializer);

                _LoadSoulCompile(data.TypeId, data.EntityId, data.ReturnId, data.PassageId);
            }
            else if (id == ServerToClientOpCode.LoadSoul)
            {
                PackageLoadSoul data = args.ToPackageData <PackageLoadSoul>(_Serializer);

                _LoadSoul(data.TypeId, data.EntityId, data.ReturnType);
            }
            else if (id == ServerToClientOpCode.UnloadSoul)
            {
                PackageUnloadSoul data = args.ToPackageData <PackageUnloadSoul>(_Serializer);

                _UnloadSoul(data.TypeId, data.EntityId, data.PassageId);
            }
            else if (id == ServerToClientOpCode.ProtocolSubmit)
            {
                PackageProtocolSubmit data = args.ToPackageData <PackageProtocolSubmit>(_Serializer);

                _ProtocolSubmit(data);
            }
        }
Example #2
0
        private void _Push(ServerToClientOpCode cmd, byte[] data)
        {
            if (_Enable)
            {
                System.Threading.Interlocked.Increment(ref _TotalResponse);

                _Responses.Enqueue(
                    new ResponsePackage
                {
                    Code = cmd,
                    Data = data
                });
            }
        }
Example #3
0
 private void _Empty(ServerToClientOpCode arg1, byte[] arg2)
 {
 }
Example #4
0
 void IResponseQueue.Push(ServerToClientOpCode cmd, byte[] data)
 {
     _Push(cmd, data);
 }
Example #5
0
        protected void _OnResponse(ServerToClientOpCode id, byte[] args)
        {
            switch (id)
            {
            case ServerToClientOpCode.Ping:
                Ping = _PingTimeCounter.Ticks;
                _StartPing();
                break;

            case ServerToClientOpCode.UpdateProperty:
            {
                var data = args.ToPackageData <PackageUpdateProperty>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageUpdateProperty cast null");
                }

                _UpdateProperty(data.PropertyId, data.EntityId, data.Args);
            }

            break;

            case ServerToClientOpCode.InvokeEvent:
            {
                var data = args.ToPackageData <PackageInvokeEvent>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageInvokeEvent cast null");
                }

                _InvokeEvent(data.EntityId, data.EventId, data.EventParams);
            }

            break;

            case ServerToClientOpCode.ErrorMethod:
            {
                var data = args.ToPackageData <PackageErrorMethod>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageErrorMethod cast null");
                }

                _ErrorReturnValue(data.ReturnTarget, data.Method, data.Message);
            }

            break;

            case ServerToClientOpCode.ReturnValue:
            {
                var data = args.ToPackageData <PackageReturnValue>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageReturnValue cast null");
                }

                _SetReturnValue(data.ReturnTarget, data.ReturnValue);
            }

            break;

            case ServerToClientOpCode.LoadSoulCompile:
            {
                var data = args.ToPackageData <PackageLoadSoulCompile>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageLoadSoulCompile cast null");
                }

                _LoadSoulCompile(data.TypeId, data.EntityId, data.ReturnId);
            }

            break;

            case ServerToClientOpCode.LoadSoul:
            {
                var data = args.ToPackageData <PackageLoadSoul>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageLoadSoul cast null");
                }

                _LoadSoul(data.TypeId, data.EntityId, data.ReturnType);
            }

            break;

            case ServerToClientOpCode.UnloadSoul:
            {
                var data = args.ToPackageData <PackageUnloadSoul>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageUnloadSoul cast null");
                }

                _UnloadSoul(data.TypeId, data.EntityId);
            }

            break;

            case ServerToClientOpCode.ProtocolSubmit:
            {
                var data = args.ToPackageData <PackageProtocolSubmit>(_Serializer);

                if (data == null)
                {
                    throw new NullReferenceException("PackageProtocolSubmit cast null");
                }
            }

            break;

            default:
                throw new ArgumentOutOfRangeException(nameof(id), id, null);
            }
        }
Example #6
0
 public void OnResponse(ServerToClientOpCode id, byte[] args)
 {
     _OnResponse(id, args);
     _AutoRelease.Update();
 }
Example #7
0
        public static void ServerToClient <T>(this Regulus.Remote.PackageWriter <ResponsePackage> writer, Regulus.Serialization.ISerializer serializer, ServerToClientOpCode opcode, T instance)
        {
            ResponsePackage pkg = new ResponsePackage();

            pkg.Code = opcode;
            pkg.Data = serializer.Serialize(instance);
            writer.Push(new[] { pkg });
        }
Example #8
0
        public static byte[] ServerToClient <T>(this Regulus.Serialization.ISerializer serializer, ServerToClientOpCode opcode, T instance)
        {
            ResponsePackage pkg = new Regulus.Remote.ResponsePackage()
            {
                Code = opcode, Data = serializer.Serialize(instance)
            };

            return(serializer.Serialize(pkg));
        }
Example #9
0
        void IResponseQueue.Push(ServerToClientOpCode cmd, byte[] data)
        {
            lock(Peer._LockResponse)
            {

                if (_Enable)
                {
                    Peer.TotalResponse++;
                    _Responses.Enqueue(
                        new ResponsePackage
                        {
                            Code = cmd,
                            Data = data
                        });
                }
            }
        }