public void TestFlatBufferConsistency() { var random = new Random(); var recorder = new FlatBufferRecorder(); var replayer = new FlatBufferReplayer(); var schema = new MessageSchema(); schema.Register(1, SynchronizeSceneData.GetRootAsSynchronizeSceneData); var processor = new MessageProcessor(schema); processor.Attach(1, msg => OnProcessMessage(recorder, replayer, msg)); for (var time = 0; time < TotalRunTime; time += RecordInterval) { var fbb = RandomRecord(random, recorder, time); if (fbb != null) { var bytes = FlatBufferExtensions.ToProtocolMessage(fbb, 1); processor.Enqueue(bytes); processor.Process(); } } }
private void ReadThread(object state) { var schema = new MessageSchema(); schema.Register(ServerMessageIds.LoginResponse, LoginResponse.GetRootAsLoginResponse); schema.Register(ServerMessageIds.SynchronizeSceneData, SynchronizeSceneData.GetRootAsSynchronizeSceneData); var processor = new MessageProcessor(schema); processor.Attach((int)ServerMessageIds.LoginResponse, OnLoginResponse); processor.Attach((int)ServerMessageIds.SynchronizeSceneData, OnSynchronizeSceneData); var buffer = new byte[this.tcpClient.ReceiveBufferSize]; while (this.networkStream.CanRead) { int readSize; try { readSize = this.networkStream.Read(buffer, 0, buffer.Length); } catch (IOException) { readSize = 0; } if (readSize == 0) { Debug.Log("Disconnected"); break; } var bytes = new byte[readSize]; Array.Copy(buffer, bytes, readSize); Debug.Log(string.Format("Received {0} bytes", readSize)); processor.Enqueue(bytes); processor.Process(); } }
private void ReadThread(object state) { var schema = new MessageSchema(); schema.Register(ClientMessageIds.LoginRequest, LoginRequest.GetRootAsLoginRequest); schema.Register(ClientMessageIds.InputRequest, InputRequest.GetRootAsInputRequest); var processor = new MessageProcessor(schema); processor.Attach((int)ClientMessageIds.LoginRequest, OnLoginRequest); processor.Attach((int)ClientMessageIds.InputRequest, OnInputRequest); var buffer = new byte[this.tcpClient.ReceiveBufferSize]; while (this.networkStream.CanRead) { int readSize; try { readSize = this.networkStream.Read(buffer, 0, buffer.Length); } catch (IOException) { readSize = 0; } if (readSize == 0) { logger.Info("Disconnected"); break; } var bytes = new byte[readSize]; Array.Copy(buffer, bytes, readSize); logger.Info("Received {0} bytes", readSize); processor.Enqueue(bytes); processor.Process(); } }