Exemplo n.º 1
0
        public override void OnReceived(IConnection connection, byte[] buffer, int offset, int size)
        {
            NetworkBuffer networkBuffer = new NetworkBuffer(buffer, offset, size, true);
            int           protocolId    = networkBuffer.ReadInt32();
            int           callBackId    = networkBuffer.ReadInt32();
            Type          messageType   = messageInitializer.GetMessageType(protocolId);

            if (null == messageType)
            {
                LoggerManager.Instance.Warn("OnReceived found msg protocolId {0}-{0:X} can't getMessageType then ingored", protocolId);
            }
            else
            {
                Message message = (Message)Activator.CreateInstance(messageType);
                message.CallBackId = callBackId;
                message.DecodeBody(buffer, offset + networkBuffer.ReadOffset, networkBuffer.ReadableBytes);
                if (protocolId == Protocols.P_GC_GameLogin)
                {
                    GCLoginGameMessage gcLoginGameMessage = (GCLoginGameMessage)message;
                    connection.LoginGameRes = gcLoginGameMessage;
                    LoggerManager.Instance.Info("connection {0} recv loginRes callBackId {1}", connection.GetHashCode(), gcLoginGameMessage.CallBackId);
                }
                else
                {
                    connection.RecvProtocol(protocolId);
                    IMessageHandler messageHandler = messageInitializer.GetMessageHandler(protocolId);
                    if (messageHandler != null)
                    {
                        messageHandler.HandleMessage(connection, message);
                    }
                    else
                    {
                        if (!msgDelegateProcessor.HandleMessage(message, connection))
                        {
                            messageHandler = messageInitializer.GetDefaultMessageHandler();
                            if (messageHandler != null)
                            {
                                messageHandler.HandleMessage(connection, message);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        internal override void Deserialize(byte[] bytes)
        {
            var buff = new NetworkBuffer(bytes);

            activationType = (ActivationType)buff.ReadInt32();
            inputShape     = buff.ReadShape();
            outputShape    = buff.ReadShape();
            _weights       = buff.ReadTensor();
            _bias          = buff.ReadTensor();
            buff.Close();
        }
        public override void OnReceived(IConnection connection, NetworkBuffer buffer, int offset, int size)
        {
            int  protocolId = buffer.ReadInt32();
            int  bodySize   = size - 4;
            Type msgType    = messageInitializer.getMessageType(protocolId);

            if (msgType == null)
            {
                UnityEngine.Debug.Log(":::此消息C#无处理,进入ulua检测处理,消息号:" + protocolId + "-消息长度:" + size);
                LuaFramework.Util.CallMethod("Network", "OnSocket", protocolId, new ByteBuffer(buffer.GetBuffer()));
                return;
            }
            if (msgType == null)
            {
                this.ReceviedFail(buffer, protocolId, bodySize);
                return;
            }
            Message msg = (Message)Activator.CreateInstance(msgType);

            if (msg == null)
            {
                this.ReceviedFail(buffer, protocolId, bodySize);
                return;
            }
            msg.DecodeBody(buffer, buffer.ReadOffset, bodySize);
            IMessageHandler messageHandler = messageInitializer.GetMessageHandler(protocolId);

            if (AbstractMessageInitializer.getDefaultLogger() != null)
            {
                AbstractMessageInitializer.getDefaultLogger()("message recv:" + msgType.FullName + ", messageId:" + protocolId);
            }

            if (messageHandler != null)
            {
                messageHandler.handleMessage(connection, msg);
            }
            else
            {
                if (!msgDelegateProcessor.HandleMessage(msg, connection))
                {
                    //ReceviedFail(buffer, protocolId, bodySize);
                    return;
                    //messageHandler = messageInitializer.GetDefaultMessageHandler();
                    //if (messageHandler != null)
                    //    messageHandler.handleMessage(connection, msg);
                }
            }
        }