public AOE(Service service, Vector2 where, Vector2 forward, float timeAlive, ref List <Client> players) { this.service = service; id = service.GetAoeUniqueId(); Awake(); transform.setPosition(where); List <Vector2> fwds = new List <Vector2>(); fwds.Add(forward); List <float> times = new List <float>(); times.Add(timeAlive); alive = timeAlive; transform.setSegment(fwds, times); ByteMessage msg = new ByteMessage(); msg.WriteTag("NEA"); msg.WriteInt(id); msg.WriteFloat(transform.getPosition().X); msg.WriteFloat(transform.getPosition().Y); foreach (Client c in players) { c.SendMessage(msg); } }
public void Handle(ByteMessage message) { // If the user 1 flag is set then this is a session management message. // Do not pass to the higher layers but rather process locally. if ((message.Data[0] & 0x40) == 0x40) { var type = FLMsgType.GetUInt32(message.Data, ref message.Position); // On receipt of a trans user data session info we send back a dummy // entry that's just sufficient to let the client's dplay implementation // to recognise us. switch (type) { case 0xC1: if (_sessionState != FLServer.Player.Session.State.CONNECTING) { return; } _sessionState = FLServer.Player.Session.State.CONNECTING_SESSINFO; SendTUDSessionInfo(); break; case 0xC3: if (_sessionState != FLServer.Player.Session.State.CONNECTING_SESSINFO) { return; } _sessionState = FLServer.Player.Session.State.CONNECTED; var p = Context.System.Guardian.GetSingleChild("server").Ask <LocalActorRef>("NewPlayer"); p.Wait(10); _playerRef = p.Result; // FLPACKET_SERVER_CONNECTRESPONSE byte[] omsg = { 0x01, 0x02 }; var num = _playerRef.Path.Name.Split('/')[1]; var pid = uint.Parse(num); FLMsgType.AddUInt32(ref omsg, pid); Handle(omsg); Handle(new SendNews()); //Sender.Tell(omsg); //OnPlayerConnected(sess); break; } } // If this is a complete message then pass up. else if ((message.Data[0] & 0x30) == 0x30) { if ((message.Data.Length - message.Position) <= 0) { return; } byte[] msg = FLMsgType.GetArray(message.Data, ref message.Position, message.Data.Length - message.Position); _playerRef.Tell(msg); } // Otherwise we don't support this. Flag the error. else { _log.Warn("{0} unsupported message: {1}", Self.Path, message.Data); } }
public void CanSerializeMessageWithByte() { var stream = new MemoryStream(); var msg = new ByteMessage(DateTime.UtcNow,1,2); var serializer = new Serializer(new SerializerOptions(versionTolerance: true, preserveObjectReferences: true)); serializer.Serialize(msg, stream); stream.Position = 0; var res = serializer.Deserialize(stream); }
//Actuall outgoing msg //Gets sent to "listenForClientMsg" here all types currentely needs to manually added private void sendMsg(OutMsg msg) { ByteMessage bMsg = new ByteMessage() { msg = msg.msg }; connectionToServer.Send(msg.msgType, bMsg); }
public void CanSerializeMessageWithByte() { var stream = new MemoryStream(); var msg = new ByteMessage(DateTime.UtcNow, 1, 2); var serializer = new Serializer(new SerializerOptions(true)); serializer.Serialize(msg, stream); stream.Position = 0; var res = serializer.Deserialize(stream); }
public void CanSerializeMessageWithByte() { var stream = new MemoryStream(); var msg = new ByteMessage(DateTime.UtcNow, 1, 2); var serializer = new Serializer(new SerializerOptions(versionTolerance: true, preserveObjectReferences: true)); serializer.Serialize(msg, stream); stream.Position = 0; var res = serializer.Deserialize(stream); }
public void SendEvent(int conn, byte[] serializedmsg, int channel) { //TODO Log Message Debug.Log(LZ4MessagePackSerializer.ToJson(serializedmsg)); var data = new ByteMessage() { Data = serializedmsg }; NetworkServer.SendToClient(conn, (byte)RtsMessageType.Event, data); }
public void sendMsg(object msg, NetworkConnection c, short msgId) { byte[] bytes; using (MemoryStream stream = new MemoryStream()){ new BinaryFormatter().Serialize(stream, msg); bytes = stream.ToArray(); } ByteMessage netMsg = new ByteMessage(); netMsg.msg = bytes; c.Send(msgId, netMsg); }
public void SendOpResponse(int conn, byte[] serializedmsg, int channel) { //TODO Log Message Debug.Log(LZ4MessagePackSerializer.ToJson(serializedmsg)); var data = new ByteMessage() { Data = serializedmsg }; NetworkServer.SendToClient(conn, (byte)RtsMessageType.OperationResponse, data); //TODO Log Message Debug.Log("Message Sent"); }
public void ByteIsSentForByteEnum() { ByteMessage msg = new ByteMessage() { byteEnum = MyByteEnum.B }; NetworkWriter writer = new NetworkWriter(); writer.Write(msg); // should be 1 byte for null check and 1 byte for data Assert.That(writer.Length, Is.EqualTo(2)); }
public void ByteIsSentForByteEnum() { ByteMessage msg = new ByteMessage() { byteEnum = MyByteEnum.B }; NetworkWriter writer = new NetworkWriter(); writer.Write(msg); // should be 1 byte for data Assert.That(writer.Position, Is.EqualTo(1)); }
public void ByteIsSentForByteEnum() { ByteMessage msg = new ByteMessage() { byteEnum = MyByteEnum.B }; NetworkWriter writer = new NetworkWriter(); msg.Serialize(writer); // should only be 1 byte Assert.That(writer.Length, Is.EqualTo(1)); }
public bool Equals(ByteMessage other) { return(UtcTime.Equals(other.UtcTime) && LongValue.Equals(other.LongValue) && ByteValue.Equals(other.ByteValue)); }
public bool Equals(ByteMessage other) { return UtcTime.Equals(other.UtcTime) && LongValue.Equals(other.LongValue) && ByteValue.Equals(other.ByteValue); }