/// <summary> /// This handles an incoming message /// </summary> /// <param name="msg">The received message</param> public void IncomingMessage(NetIncomingMessage msg) { if (!this.IsConnected) return; // Is this is a heartbeat message? (keep alive) if (msg.LengthBits == 0) return; // Decrypt the message msg.Decrypt(_netEncryption); if (msg.LengthBits == 0) return; // Here you can process your message like: Console.WriteLine("Received message: {0}", msg.ReadString()); }
private void ProcessNetIncomingMessageData(NetIncomingMessage message, bool unconnected) { try { if (!unconnected) { switch (message.SequenceChannel) { case 0: // Assume everything sent along channel 0 is encrypted if (!message.Decrypt(_encryption)) { Log.Critical("Unable to decrypt packet on Channel 0, please check the key that is being used."); } break; } } //var data = Illisian.UnityUtil.Compression.ByteArrays.Decompress(message.ReadBytes(message.LengthBytes)); var data = message.ReadBytes(message.LengthBytes); NetMessage _msg = new NetMessage(); _msg.NetConnection = message.SenderConnection; _msg.Object = Illisian.UnityUtil.Serialise.Binary.ByteArrayToObject(data); _msg.SequenceChannel = message.SequenceChannel; _msg.UnconnectedMessage = unconnected; if (OnIncomingMessage != null) { OnIncomingMessage(_msg); } else { Log.Warn("Packets are being received but nothing is listening on the event hook"); } } catch (Exception ex) { Log.Warn(String.Format("Unable to Process Incoming Message :: Error Message: {0}", ex.Message)); } }
/// <summary> /// This handles an incoming message /// </summary> /// <param name="msg">The received message</param> public void IncomingMessage(NetIncomingMessage msg) { if (!this.IsConnected) return; //Heartbeat if (msg.LengthBytes == 0) return; msg.Decrypt(_netEncryption); if (msg.LengthBits == 0) return; // Handle messages Console.WriteLine(msg.ReadString()); }