/// <summary>
        /// 处理数据
        /// </summary>
        public void OnRecvData(NetPeer peer, NetPacketReader reader)
        {
            var protoType = (ProtoType)reader.GetByte();
            var protoName = reader.GetString();

            logger.Info("OnRecvData[commandid]:" + protoType + " protoName:" + protoName);

            if (!mHandlers.ContainsKey(protoName))
            {
                protoName = Protocal.Default;
            }
            byte[] bytes = null;
            var    count = reader.GetInt();

            reader.GetBytes(bytes, count);

            IHandler handler = null;

            if (mHandlers.TryGetValue(protoName, out handler))
            {
                try
                {
                    if (handler != null)
                    {
                        handler.OnMessage(peer, bytes);
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                }
            }
        }
Beispiel #2
0
 public static AuthenticationReplyPacket Read(NetPacketReader message)
 {
     return(new AuthenticationReplyPacket()
     {
         Guid = new Guid(message.GetBytes(16))
     });
 }
Beispiel #3
0
        void SendDepthDataToReceivers(int streamingClientId, NetPacketReader reader)
        {
            // Debug.Log("SendDepthData: " + reader.UserDataSize);

            int  frameCount  = reader.GetInt();
            bool isKeyFrame  = reader.GetBool();
            int  depthWidth  = reader.GetInt();
            int  depthHeight = reader.GetInt();

            CompressionMethod compressionMethod = (CompressionMethod)reader.GetInt();
            int encodedDepthDataLength          = reader.GetInt();

            byte[] encodedDepthData = new byte[encodedDepthDataLength];
            reader.GetBytes(encodedDepthData, encodedDepthDataLength);

            _dataWriter.Reset();
            _dataWriter.Put((int)NetworkDataType.ReceiveDepthData);
            _dataWriter.Put(frameCount);
            _dataWriter.Put(isKeyFrame);
            _dataWriter.Put(depthWidth);
            _dataWriter.Put(depthHeight);
            _dataWriter.Put((int)compressionMethod);
            _dataWriter.Put(encodedDepthData.Length);
            _dataWriter.Put(encodedDepthData);

            foreach (int receiverClientId in _streamingReceivers[streamingClientId])
            {
                _liteNetLibServer.SendData(receiverClientId, _dataWriter, DeliveryMethod.ReliableOrdered);
            }
        }
Beispiel #4
0
 private void Listener_NetworkReceiveEvent(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
 {
     _readBuffer.LengthBytes = reader.UserDataSize;
     _readBuffer.Position    = 0;
     reader.GetBytes(_readBuffer.Data, reader.UserDataSize);
     SocketMan.HandleIncomingData(_readBuffer);
     reader.Recycle();
 }
Beispiel #5
0
        private void Listener_NetworkReceiveEvent(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
        {
            byte[] dgram = new byte[reader.AvailableBytes];
            reader.GetBytes(dgram, dgram.Length);
            IPeer p = (IPeer)peer.Tag;

            OnReceivePacket(p, serializer.Deserialize(dgram), (Reliability)deliveryMethod);
        }
        void OnReceivedRawTextureData(NetPeer peer, NetPacketReader reader)
        {
            int frameCount = reader.GetInt();
            int width      = reader.GetInt();
            int height     = reader.GetInt();

            int textureDataLength = reader.GetInt();

            byte[] rawTextureData = new byte[textureDataLength];
            reader.GetBytes(rawTextureData, textureDataLength);

            OnReceivedRawTextureData(frameCount, width, height, rawTextureData);
        }
Beispiel #7
0
        void OnReceivedDepthAndColorData(NetPeer peer, NetPacketReader reader)
        {
            int  frameCount  = reader.GetInt();
            bool isKeyFrame  = reader.GetBool();
            int  depthWidth  = reader.GetInt();
            int  depthHeight = reader.GetInt();

            CompressionMethod compressionMethod = (CompressionMethod)reader.GetInt();
            int encodedDepthDataLength          = reader.GetInt();

            byte[] encodedDepthData = new byte[encodedDepthDataLength];
            reader.GetBytes(encodedDepthData, encodedDepthDataLength);

            int colorWidth  = reader.GetInt();
            int colorHeight = reader.GetInt();

            int colorImageDataLength = reader.GetInt();

            byte[] colorImageData = new byte[colorImageDataLength];
            reader.GetBytes(colorImageData, colorImageDataLength);

            OnReceivedDepthAndColorData(frameCount, isKeyFrame, depthWidth, depthHeight, compressionMethod, encodedDepthData,
                                        colorWidth, colorHeight, colorImageData);
        }
Beispiel #8
0
    public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
    {
        var available = reader.AvailableBytes;

        reader.GetBytes(temp, available);

        var entity = PostUpdateCommands.CreateEntity();

        PostUpdateCommands.AddComponent(entity, new ServerStateCommand());
        var buffer      = PostUpdateCommands.AddBuffer <SerializedServerState>(entity).Reinterpret <byte>();
        var nativearray = new NativeArray <byte>(temp, Allocator.Temp);

        buffer.AddRange(nativearray);
        nativearray.Dispose();
    }
Beispiel #9
0
    public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
    {
        var available = reader.AvailableBytes;

        reader.GetBytes(temp, available);
        var inputData = MessagePackSerializer.Deserialize <InputData>(temp);
        // update the simulation
        var entity = EntityManager.CreateEntity();

        EntityManager.AddComponentData(entity, new ServerInputCommand
        {
            playerID  = (int)peer.Tag,
            inputData = inputData
        });
        reader.Recycle();
    }
Beispiel #10
0
        private void Listener_NetworkReceiveEvent(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
        {
            var pl = peer.Tag as ServerPlayer;

            if (pl == null)
            {
                Debug.LogError("ServerPlayer tag is undefined on receive event, disconnecting peer.");
                peer.Disconnect();
                return;
            }
            _readBuffer.LengthBytes = reader.UserDataSize;
            _readBuffer.Position    = 0;
            reader.GetBytes(_readBuffer.Data, reader.UserDataSize);
            SocketMan.HandleIncomingData2(pl.ClientIndex, _readBuffer);
            reader.Recycle();
        }
Beispiel #11
0
        void OnReceivedCalibrationHandler(NetPeer peer, NetPacketReader reader)
        {
            Debug.Log("OnReceivedCalibration");

            K4A.CalibrationType calibrationType = (K4A.CalibrationType)reader.GetInt();
            Debug.Log("OnReceivedCalibrationType: " + calibrationType);

            int dataLength = reader.GetInt();

            byte[] serializedCalibration = new byte[dataLength];
            reader.GetBytes(serializedCalibration, dataLength);

            BinaryFormatter binaryFormatter = new BinaryFormatter();
            MemoryStream    memoryStream    = new MemoryStream(serializedCalibration);

            K4A.Calibration calibration = (K4A.Calibration)binaryFormatter.Deserialize(memoryStream);

            OnReceivedCalibration?.Invoke(calibrationType, calibration);
        }
Beispiel #12
0
        /// <summary>
        /// 处理数据
        /// </summary>
        public void OnRecvData(NetPeer peer, NetPacketReader reader)
        {
            var protoType = (ProtoType)reader.GetByte();
            var protoName = reader.GetString();

            logger.Info("OnRecvData[commandid]:" + protoType + " protoName:" + protoName);

            if (!mHandlers.ContainsKey(protoName))
            {
                logger.Error("Proto [" + protoName + "] not found!~~Reset to default!!!~");
                protoName = Protocal.Default;
            }
            var count = reader.GetInt();

            byte[] bytes = new byte[count];
            reader.GetBytes(bytes, count);

            IHandler handler = null;

            if (mHandlers.TryGetValue(protoName, out handler))
            {
                try
                {
                    if (handler != null)
                    {
                        var clientPeer = clientPeerMgr.GetClientPeer(peer);
                        if (clientPeer == null)
                        {
                            logger.Error("clientPeer was null!!!!");
                            return;
                        }
                        handler.OnMessage(clientPeer, bytes);
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                }
            }
        }
Beispiel #13
0
        void OnReceivedRawTextureData(NetPeer peer, NetPacketReader reader)
        {
            int frameCount = reader.GetInt();
            int width      = reader.GetInt();
            int height     = reader.GetInt();

            if (_Width != width || _Height != height)
            {
                _RGBColorData = new byte[3 * width * height];
                _Width        = width;
                _Height       = height;
            }

            int dataLength = reader.GetInt();

            Array.Resize(ref _EncodedData, dataLength);
            reader.GetBytes(_EncodedData, dataLength);

            _Decoder.Decode(ref _EncodedData, _EncodedData.Length, ref _RGBColorData);

            OnReceivedRawTextureData(frameCount, width, height, _RGBColorData);
        }
Beispiel #14
0
        void SetCalibration(int streamingClientId, NetPacketReader reader)
        {
            K4A.CalibrationType calibrationType = (K4A.CalibrationType)reader.GetInt();

            int dataLength = reader.GetInt();

            byte[] serializedCalibration = new byte[dataLength];
            reader.GetBytes(serializedCalibration, dataLength);

            BinaryFormatter binaryFormatter = new BinaryFormatter();
            MemoryStream    memoryStream    = new MemoryStream(serializedCalibration);

            K4A.Calibration calibration = (K4A.Calibration)binaryFormatter.Deserialize(memoryStream);

            if (!_calibrationTypeDictionary.ContainsKey(streamingClientId))
            {
                _calibrationTypeDictionary.Add(streamingClientId, calibrationType);
            }
            if (!_calibrationDictionary.ContainsKey(streamingClientId))
            {
                _calibrationDictionary.Add(streamingClientId, calibration);
            }
        }
Beispiel #15
0
        void SendTextureToReceivers(int streamingClientId, NetPacketReader reader)
        {
            int frameCount        = reader.GetInt();
            int width             = reader.GetInt();
            int height            = reader.GetInt();
            int textureDataLength = reader.GetInt();

            byte[] rawTextureData = new byte[textureDataLength];
            reader.GetBytes(rawTextureData, textureDataLength);

            _dataWriter.Reset();
            _dataWriter.Put((int)NetworkDataType.ReceiveTexture);
            _dataWriter.Put(frameCount);
            _dataWriter.Put(width);
            _dataWriter.Put(height);
            _dataWriter.Put(rawTextureData.Length);
            _dataWriter.Put(rawTextureData);

            foreach (int receiverClientId in _streamingReceivers[streamingClientId])
            {
                _liteNetLibServer.SendData(receiverClientId, _dataWriter, DeliveryMethod.ReliableOrdered);
            }
        }