/* LiteNetLib handler */
        public override void OnNetworkReceive(NetPeer connection, NetDataReader reader)
        {
            PayloadMessage message   = ProtobufUtility.Unserialize <PayloadMessage>(reader.Data);
            var            sessionId = _sessions.GetBySecond(connection);

            _lastMessageTicks[sessionId] = DateTime.Now.Ticks;
            _handleMessage(message.payload, sessionId);
        }
 /* LiteNetLib handler */
 public override void OnNetworkReceive(NetPeer connection, NetDataReader reader)
 {
     try
     {
         PayloadMessage message = ProtobufUtility.Unserialize <PayloadMessage>(reader.Data);
         //Debug.Log("Received message " + message.payload.GetType());
         _handleMessage(message.payload);
     }
     catch (Exception e)
     {
         Debug.LogError("Error while receiving message: " + e);
     }
 }
 private void _send(IMessageBase message, SendOptions options)
 {
     try
     {
         byte[] messageBytes = ProtobufUtility.Serialize(new PayloadMessage {
             payload = message
         });
         //Debug.Log("Sending message " + message.GetType());
         _server.Send(messageBytes, options);
     }
     catch (Exception e)
     {
         Debug.LogError("Error while sending message: " + e);
     }
 }
        public void CleanupUntil(long minTurnEnd)
        {
            lock (Events)
            {
                var eventsToDelete = Events.Where(event_ => event_.TurnEnd < minTurnEnd).ToList();

                // save to file
                if (_logToFile)
                {
                    byte[] bytes       = ProtobufUtility.Serialize(eventsToDelete);
                    byte[] lengthBytes = BitConverter.GetBytes(bytes.Length);

                    File.WriteAllBytes(_logFileName, lengthBytes); // overwrites!
                    File.WriteAllBytes(_logFileName, bytes);       // overwrites!
                }

                Events.RemoveAll(event_ => event_.TurnEnd < minTurnEnd);
            }
        }
        private void _send(IMessageBase message, int sessionId, SendOptions options)
        {
            NetPeer connection = null;

            _sessions.TryGetByFirst(sessionId, out connection);

            if (connection == null)
            {
                Logger.Trace("Not sending because connection for session id is missing.");
                return;
            }

            byte[] messageBytes = ProtobufUtility.Serialize(new PayloadMessage {
                payload = message
            });

            //if (message.GetType() != typeof(Incentives))
            //    Debug.Log("Send message " + message.GetType() + " to session " + sessionId);
            connection.Send(messageBytes, options);
        }