/// <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); } } }
public static AuthenticationReplyPacket Read(NetPacketReader message) { return(new AuthenticationReplyPacket() { Guid = new Guid(message.GetBytes(16)) }); }
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); } }
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(); }
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); }
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); }
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(); }
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(); }
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(); }
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); }
/// <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); } } }
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); }
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); } }
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); } }