public void Send(ISCMessage message) { var writer = new BigEndianWriter(); writer.WriteInt((int)message.RequestId); writer.WriteInt((int)message.MessageId); ConsoleLogger.Debug("[ISC] Sent : " + message.ToString().Split('.').Last()); message.Serialize(writer); if (m_client.Runing) { m_client.Send(writer.Data); } }
public static ISCMessage BuildMessage(uint id, IDataReader reader) { if (!m_messages.ContainsKey(id)) { throw new MessageNotFoundException(string.Format("NetworkMessage <id:{0}> doesn't exist", id)); } ISCMessage message = m_constructors[id](); if (message == null) { throw new MessageNotFoundException(string.Format("Constructors[{0}] (delegate {1}) does not exist", id, m_messages[id])); } message.Deserialize(reader); return(message); }