コード例 #1
0
 private void Player_DataReceived(object sender, NetworkDataRecievedEventArgs e)
 {
     if (Actions.ContainsKey(e.Message.MessageType))
     {
         Actions[e.Message.MessageType].Invoke(e.Message);
     }
 }
コード例 #2
0
 private void NetworkPlayer_DataReceived(object sender, NetworkDataRecievedEventArgs e)
 {
     lock (lockObject)
     {
         messagesToPrint.Enqueue(e.Message);
     }
 }
コード例 #3
0
 private void NetworkPlayer_DataReceived(object sender, NetworkDataRecievedEventArgs e)
 {
     if (e.Message.MessageType == MessageTypes.Connected)
     {
         networkConnection.Id = (NetworkId)e.Message.Data;
         Console.WriteLine("Received connectionId: " + networkConnection.Id);
     }
 }
コード例 #4
0
        private void Player_DataReceived(object sender, NetworkDataRecievedEventArgs e)
        {
            Console.WriteLine("Server: " + e.Message.Data);

            if (Actions.ContainsKey(e.Message.MessageType))
            {
                Actions[e.Message.MessageType].Invoke(e.Message);
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: Spongie/PokemonTcg
 private static void NetworkPlayer_DataReceived(object sender, NetworkDataRecievedEventArgs e)
 {
     if (e.Message.MessageType == MessageTypes.Connected)
     {
         networkPlayer.Id = (NetworkId)e.Message.Data;
         Console.WriteLine("Received connectionId: " + networkPlayer.Id);
     }
     else
     {
         Console.WriteLine("Received data: " + e.Message.Data);
         if (e.Message.MessageType == MessageTypes.GameUpdate)
         {
             gameField = ((GameFieldMessage)e.Message.Data).Game;
         }
     }
 }
コード例 #6
0
ファイル: MasterServer.cs プロジェクト: Spongie/PokemonTcg
        private void Player_DataReceived(object sender, NetworkDataRecievedEventArgs messageReceivedEvent)
        {
            if (messageReceivedEvent.Message.MessageType == MessageTypes.Generic)
            {
                var      messageData = (GenericMessageData)messageReceivedEvent.Message.Data;
                IService service     = Services[messageData.TargetClass];
                var      target      = Assembly.GetExecutingAssembly().GetTypes().First(type => type.Name == messageData.TargetClass);

                Task.Run(() =>
                {
                    try
                    {
                        var method     = target.GetMethod(messageData.TargetMethod);
                        var parameters = new List <object>(messageData.Parameters);

                        if (method.GetParameters().Length == messageData.Parameters.Length + 1)
                        {
                            parameters.Add(((INetworkPlayer)sender).Id);
                        }

                        object result = method.Invoke(service, parameters.ToArray());

                        if (Clients.TryGetValue(messageReceivedEvent.Message.SenderId, out NetworkPlayer networkPlayer))
                        {
                            networkPlayer.Send(new NetworkMessage(MessageTypes.Generic, result, NetworkId.Generate(), NetworkId.Generate(), messageReceivedEvent.Message.MessageId)
                            {
                                RequiresResponse = false
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        var message = new StringBuilder();
                        message.Append(e.Message);

                        if (e.InnerException != null)
                        {
                            message.Append(Environment.NewLine);
                            message.Append(e.InnerException.Message);
                        }

                        message.Append(Environment.NewLine);
                        message.Append(e.StackTrace);

                        if (e.InnerException != null)
                        {
                            message.Append(e.InnerException.StackTrace);
                        }

                        message.Append(Environment.NewLine);
                        Logger.Instance.Error(message.ToString());

                        if (Clients.TryGetValue(messageReceivedEvent.Message.SenderId, out NetworkPlayer errorPlayer))
                        {
                            errorPlayer.Send(new ExceptionMessage(e).ToNetworkMessage(Id));
                        }
                    }
                });
            }
            else
            {
                //Hmm mauybe do something i dont know
            }
        }