예제 #1
0
        static public void InitMachinations()
        {
            L.Level       = LogLevel.Debug;
            L.LogFilePath = Application.dataPath + "//MachinationsService-Error.log";

            //Since Application.dataPath cannot be accessed from other threads (and we need that), storing it in MDL.
            MnDataLayer.AssetsPath = Application.dataPath;

            //Cannot operate until settings have been defined for Machinations.
            if (!MnConfig.LoadSettings())
            {
                MnConfig.HasSettings = false;
                L.W("Machinations Settings do not exist. Please configure Machinations using Tools -> Machinations -> Open Machinations.io Control Panel.");
                return;
            }

            //Bootstrap.
            _mnService    = MnDataLayer.Service = new MnService();
            _socketClient = new SocketIOClient(
                _mnService,
                MnConfig.Instance.APIURL,
                MnConfig.Instance.UserKey,
                MnConfig.Instance.DiagramToken,
                MnConfig.Instance.GameName);
            _mnService.UseSocket(_socketClient);
        }
예제 #2
0
    private void OnCardPlayComplete()
    {
        enabled = false;
        Card tempCard = potentialCard;

        potentialCard.OnHoverExit();
        cardsInHand.Remove(potentialCard);
        potentialCard = null;
        UpdateCardsPosition();
        cardPlayInProgress = false;

        DrawCard();

        //test remote card
        NetworkCardPlay networkCard = new NetworkCardPlay();

        if (tempCard.GetType() == typeof(ChampionCard))
        {
            networkCard.cardChampionId = ((ChampionCard)tempCard).championData.Id;
        }
        else
        {
            networkCard.cardChampionId = -1;
        }
        networkCard.variables = tempCard.onPlayActionChain.ExtractVariables();
        SocketIOClient.Send(JsonUtility.ToJson(networkCard));
    }
예제 #3
0
파일: Main.cs 프로젝트: gamesFTW/card-game
    private void OnGameDataFirstTimeRecived()
    {
        GameObject     go           = GameObject.Find("Canvas");
        SocketIOClient socketClient = go.GetComponent <SocketIOClient>();

        socketClient.StartExchange();
    }
        private void initClient()
        {
            this.setConnectionState("연결중...");

            client = new SocketIOClient(SocketIOClient.Scheme.ws, host, port, false);
            initCallbacks();
            client.Connect();
        }
예제 #5
0
        /// <summary>
        /// Normal constructor : Create the game for one or two players
        /// </summary>
        /// <param name="log">Activate logs (non activated by default)</param>
        public Game(bool log = false)
        {
            logMode   = log;
            isPinging = false;
            Int32.TryParse(ConfigurationManager.AppSettings["socketIO_port"], out int port);
            socketIO = new SocketIOClient(ConfigurationManager.AppSettings["socketIO_url"], port);

            kinectMotor = new KinectCaptorV1(this);
            StartNewGame();
        }
예제 #6
0
    private void RollDiceForFirst()
    {
        if (myRoll != -1)
        {
            return;
        }

        //roll numbers between 0-1000 to decide who goes first
        NetworkRollFirst roll = new NetworkRollFirst();

        roll.rollAmount = UnityEngine.Random.Range(0, 1000);
        myRoll          = roll.rollAmount;
        SocketIOClient.Send(JsonUtility.ToJson(roll));
    }
예제 #7
0
        private static async Task TestCore(bool directConnection)
        {
            using var client = new SocketIOClient("http://localhost:10000/", _httpClient);

            await client.ConnectAsync(new ConnectionOptions()
            {
                NoLongPollingConnection = directConnection
            });

            Assert.True(client.IsConnected);

            await client.CloseAsync();

            Assert.False(client.IsConnected);
        }
예제 #8
0
        void SetupServer()
        {
            socket = new SocketIOClient(SocketIOClient.Scheme.ws, configData.getString("host"), configData.getInt("port"), false, true, false);
            socket.Connect();

            socket.On("socketConnected", socketConnected);

            socket.On("getRequests", getRequests);
            socket.On("newRequest", newRequest);
            socket.On("editRequest", editRequest);
            socket.On("removeRequest", removeRequest);

            socket.On("clearDeliverymanData", clearDeliverymanData);
            socket.On("newDeliveryman", newDeliveryman);

            socket.On("clearClientsData", clearClientsData);
            socket.On("newClient", newClient);

            socket.On("disconnect", disconnect);
            socket.On("disconnected", disconnect);
        }
예제 #9
0
        static void Main(string[] args)
        {
            SocketIOClient client = new SocketIOClient(SocketIOClient.Scheme.ws, "127.0.0.1", 9001);

            InitEventHandlers(client);

            client.Connect();
            Console.WriteLine("Input /exit to close connection.");

            string line;

            while (!(line = Console.ReadLine()).Equals("/exit"))
            {
                client.Emit("input", line);
                client.Emit("input array", line, line);
            }

            client.Close();

            Console.WriteLine("Press any key to continue...");
            Console.Read();
        }
예제 #10
0
    // Use this for initialization
    IEnumerator Start()
    {
        statusText.text = "Getting data from Riot api";
        yield return(StartCoroutine(SetupApiData()));

        yield return(StartCoroutine(SetupMap()));

        yield return(StartCoroutine(SetupChampions()));

        yield return(StartCoroutine(SetupPlayers()));

        if (error)
        {
            statusText.text = "An error has occurred during api requests.\nPlease try again later.";
            DOTween.To(() => loadingIndicator.color, x => loadingIndicator.color = x, new Color(1, 1, 1, 0), 1);
        }
        else
        {
            statusText.text = "Finding random match";
            SocketIOClient.Connect();
        }
    }
예제 #11
0
      static void Main()
      {
          var io = new SocketIOClient();

          var socket = io.Connect("http://localhost:3000/");

          socket.On("data", (args, callback) =>
            {
                Console.WriteLine("Server sent:");

                for (int i = 0; i < args.Length; i++)
                {
                    Console.WriteLine("[" + i + "] => " + args[i]);
                }
            });

          string line;

          while ((line = Console.ReadLine()) != "q")
          {
              socket.Emit("data", line);
          }
      }
예제 #12
0
        public void InitEventHandlers(SocketIOClient client)
        {
            client.On(SocketIOEvent.CONNECTION, () =>
            {
                Console.WriteLine("Connected!");
            });

            client.On(SocketIOEvent.DISCONNECT, () =>
            {
                Console.WriteLine();
                Console.WriteLine("Disconnected!");
            });


            client.On("chat message", (Data) =>
            {
                Console.WriteLine("Echo : " + (Data[0].Type == JTokenType.Bytes ? BitConverter.ToString(Data[0].ToObject <byte[]>()) : Data[0]));

                Console.WriteLine("This is me " + Data[0]);

                // Delegate 사용 -> 폼에 메시지 추가
                setText_Control((Control)txtBoxMsg, (string)Data[0]);
            });
        }
예제 #13
0
        static void InitEventHandlers(SocketIOClient client)
        {
            client.On(SocketIOEvent.CONNECTION, () =>
            {
                Console.WriteLine("Connected!");
            });

            client.On(SocketIOEvent.DISCONNECT, () =>
            {
                Console.WriteLine();
                Console.WriteLine("Disconnected!");
            });

            client.On("echo", (Data) =>
            {
                Console.WriteLine("Echo : " + (Data[0].Type == JTokenType.Bytes ? BitConverter.ToString(Data[0].ToObject <byte[]>()) : Data[0]));
            });

            client.On("echo array", (Data) =>
            {
                Console.WriteLine("Echo1 : " + Data[0]);
                Console.WriteLine("Echo2 : " + Data[1]);
            });
        }
예제 #14
0
        static void InitEventHandlers(SocketIOClient client)
        {
            client.On(SocketIOClient.Event.CONNECTION, (Data) =>
            {
                Console.WriteLine("Connected!");
            });

            client.On(SocketIOClient.Event.DISCONNECT, (Data) =>
            {
                Console.WriteLine();
                Console.WriteLine("Disconnected!");
            });

            client.On("echo", (Data) =>
            {
                Console.WriteLine("Echo : " + Data[0]);
            });

            client.On("echo array", (Data) =>
            {
                Console.WriteLine("Echo1 : " + Data[0]);
                Console.WriteLine("Echo2 : " + Data[1]);
            });
        }
 //Connection error event.
 private void SocketError(object sender, SocketIOClient.ErrorEventArgs e)
 {
     Console.WriteLine("socket client error:");
     Console.WriteLine(e.Message);
 }
예제 #16
0
 private void SocketMessage(object sender, SocketIOClient.MessageEventArgs e)
 {
     //Debug.Log ("Message: " + e.Message.Event + "-" + e.Message.MessageText);
 }
예제 #17
0
 /* -------------------- */
 /* - Socket handler   - */
 /* -------------------- */
 private void SocketError(object sender, SocketIOClient.ErrorEventArgs e)
 {
     Debug.Log ("Error: " + e.Message);
 }
예제 #18
0
 public CurrentBoard()
 {
     BoardChessOffline = new Board();
     Socket            = new SocketIOClient();
 }
        private void socket_MessageReceived(object sender, SocketIOClient.MessageEventArgs e)
        {
            if (e.Message.MessageType == SocketIOMessageTypes.JSONMessage)
            {
                Logger.LogTrace(e.Message.MessageText);
                var json = JObject.Parse(e.Message.MessageText);
                var noun = json.SelectToken("noun").Value<string>();
                var verb = json.SelectToken("verb").Value<string>();
                var creatorUuid = json.SelectToken("creator").SelectToken("uuid").Value<string>();
                switch (noun)
                {
                    case "Comment":
                    {
                        var comment = json.SelectToken("comment");
                        var commentId = comment.SelectToken("id").Value<long>();
                        var fileId = comment.SelectToken("file_id").Value<int>();
                        var versionNumber = comment.SelectToken("file_version").Value<int>();
                        var body = comment.SelectToken("body").Value<string>();
                        switch (verb)
                        {
                            case "Create":
                                Events.GetEvent<FileCommentAddedEvent>().Publish(new CommentEventArgs()
                                {
                                    CommentId = commentId,
                                    FileId = fileId,
                                    VersionNumber = versionNumber,
                                    UserUuId = creatorUuid
                                });
                                break;

                            case "Delete":
                                Events.GetEvent<FileCommentRemovedEvent>().Publish(new CommentEventArgs()
                                {
                                    CommentId = commentId,
                                    FileId = fileId,
                                    VersionNumber = versionNumber,
                                    UserUuId = creatorUuid
                                });
                                break;

                            case "Update":
                                Events.GetEvent<FileCommentEditedEvent>().Publish(new CommentEventArgs()
                                {
                                    CommentId = commentId,
                                    FileId = fileId,
                                    VersionNumber = versionNumber,
                                    Body = body,
                                    UserUuId = creatorUuid
                                });
                                break;
                        }
                        break;
                    }

                    case "Visit":
                    {
                        var userId = json.SelectToken("visit").SelectToken("user_id").Value<string>();
                        var fileId = json.SelectToken("visit").SelectToken("file_id").Value<int?>().GetValueOrDefault();
                        var folderid = json.SelectToken("visit").SelectToken("folder_id").Value<int?>().GetValueOrDefault();
                        Events.GetEvent<UserVisitEvent>().Publish(new UserEventArgs()
                        {
                            UserId = userId,
                            UserUuid = creatorUuid,
                            FolderId = folderid,
                            FileId = fileId
                        });
                        break;
                    }

                    case "FileVersion":
                    {
                        switch (verb)
                        {
                            case "Update":
                            {
                                var newStatus = json.SelectToken("changes").SelectToken("status").SelectToken("new");


                                if (newStatus.Type == JTokenType.String &&
                                    string.Equals(newStatus.Value<string>(), "applied"))
                                {
                                    var creatorToken = json.SelectToken("file_version").SelectToken("creator");
                                    var creator = new PlatformUser(Session, creatorToken);
                                    var version = new PlatformVersion(Session, User, json.SelectToken("file_version"),
                                        -1);
                                    Events.GetEvent<FileVersionAddedEvent>().Publish(new VersionEventArgs()
                                    {
                                        VersionNumber = version.Number,
                                        FileId = version.FileId,
                                        Creator = creator,
                                        Version = version
                                    });

                                }
                                break;
                            }
                        }
                    }
                        break;

                    case "Member":
                    {
                        var memberToken = json.SelectToken("member");
                        var user = new PlatformUser(Session, memberToken);
                        var folderId = json.SelectToken("folder_id").Value<int?>().GetValueOrDefault();
                        switch (verb)
                        {
                            case "Create":
                            {
                                Events.GetEvent<MemberAddedEvent>().Publish(new MemberActionEventArgs()
                                {
                                    FolderId = folderId,
                                    Member = user,
                                    MemverUuid = user.Uuid
                                });
                                break;
                            }
                            case "Delete":
                            {
                                Events.GetEvent<MemberRemovedvent>().Publish(new MemberActionEventArgs()
                                {
                                    FolderId = folderId,
                                    Member = user,
                                    MemverUuid = user.Uuid
                                });
                                break;
                            }
                        }
                        break;
                    }

                    case "File" :
                    {
                        var fileId = json.SelectToken("file_id").Value<int>();
                        switch (verb)
                        {
                            case "Download":
                            {
                                Events.GetEvent<FileDownloadedEvent>().Publish(new FileActionArgs()
                                {
                                    FileId = fileId,
                                    UserUuid = creatorUuid
                                });
                                break;
                            }
                        }
                        break;
                    }

                }
            }
            else if (e.Message.MessageType == SocketIOMessageTypes.Event)
            {
                switch (e.Message.Event)
                {
                    case "file:openedByUser"    :
                    {
                        var jsom = JObject.Parse(e.Message.MessageText);
                        var data = jsom.SelectToken("args").First;
                        var userUuid = data.SelectToken("uuid").Value<string>();
                        var fileid = data.SelectToken("file_id").Value<int>();
                        var currentEditors = data.SelectToken("current_editors").Value<int>();
                        Events.GetEvent<FileOpenedEvent>().Publish(new FileOpenCloseArgs()
                        {
                            FileId = fileid,
                            UserUuid = userUuid,
                            CurrentEdotorsCount = currentEditors
                        });
                        break;
                    }

                    case "file:closedByUser":
                    {
                        var jsom = JObject.Parse(e.Message.MessageText);
                        var data = jsom.SelectToken("args").First;
                        var userUuid = data.SelectToken("uuid").Value<string>();
                        var fileid = data.SelectToken("file_id").Value<int>();
                        var currentEditors = data.SelectToken("current_editors").Value<int>();
                        Events.GetEvent<FileClosedEvent>().Publish(new FileOpenCloseArgs()
                        {
                            FileId = fileid,
                            UserUuid = userUuid,
                            CurrentEdotorsCount = currentEditors
                        });
                        break;
                    }

                }
            }

        }
예제 #20
0
        private void onBattleResult(SocketIOClient.Messages.IMessage data, Commander command, int fightZone)
        {
            Console.WriteLine("\nonBattleResult\n");

            Console.WriteLine("\n" + data.Json.ToJsonString() + "\n");

            BattleResult br;
            BattleResultRoot root = Newtonsoft.Json.JsonConvert.DeserializeObject<BattleResultRoot>(data.Json.ToJsonString());

            br = root.args[0];

            Console.WriteLine("winner : " + br.winner + " looser : " + br.loser + " attacker : " + command.Owner + " fightzone : " + fightZone);

            //Display answers

            List<OrderedAnswer> answers = new List<OrderedAnswer>();
            OrderedAnswer answerWin = new OrderedAnswer();
            answerWin.id = br.winner;
            answerWin.time = 0f;
            answerWin.value = br.winVal;

            OrderedAnswer answerLoss = new OrderedAnswer();
            answerLoss.id = br.loser;
            answerLoss.time = 0f;
            answerLoss.value = br.lossVal;

            answers.Add(answerWin);
            answers.Add(answerLoss);

            _radialUI = null;

            initAnswerUI(answers);

            clearProgressAndDialog();

            Action endCallback = delegate() { processBattleResults(br.winner, br.loser, fightZone, command); };

            _timeSinceAnswerDisplayStart = 0f;
            UpdateAction = delegate(float dt) {answersDisplayUpdate(dt, endCallback);};
        }
예제 #21
0
        public void SocketConnect()
        {
            SocketIOClientOption option = new SocketIOClientOption(EngineIOScheme.https, "militant-socket-server.herokuapp.com", 443);

            // SocketIOClientOption option = new SocketIOClientOption(EngineIOScheme.http, "localhost", 8080);
            socket = new SocketIOClient(option);
            socket.On("connection", () =>
            {
                WriteToFile("Socket Connected!");

                socket.Emit("subscribe", "test");

                /*socket.Emit("ping", new Dictionary<String, String> {
                 *  { "anu", "una" }
                 * });*/
            });

            socket.On("disconnect", () =>
            {
                WriteToFile("Socket Disconnected!");
            });

            socket.On("error", (JToken[] Data) => // Type of argument is JToken[].
            {
                if (Data != null && Data.Length > 0 && Data[0] != null)
                {
                    WriteToFile("Socket Error: " + Data[0]);
                }
                else
                {
                    WriteToFile("Socket Error: Unkown Error");
                }
            });

            socket.On("message", (Data) => // Argument can be used without type.
            {
                if (Data != null && Data.Length > 0 && Data[0] != null)
                {
                    WriteToFile("Socket Message: " + Data[0]);
                }
            });

            /*socket.On("ping", (Data) => // Argument can be used without type.
             * {
             *  if (Data != null && Data.Length > 0 && Data[0] != null)
             *  {
             *      WriteToFile("Message : " + Data[0]);
             *  }
             * });*/

            socket.On("user", (Data) => // Argument can be used without type.
            {
                if (Data != null && Data.Length > 0 && Data[0] != null)
                {
                    WriteToFile("Socket Message: " + Data[0]);

                    if (File.Exists(exePath))
                    {
                        string exeConsolePath = AppDomain.CurrentDomain.BaseDirectory + "ConsoleApp.exe";

                        WriteToFile("Execute: " + exePath + " " + Data[0]["event"].ToString());
                        WriteToFile("Execute: " + exeConsolePath);

                        // Process.Start(exePath, Data[0]["event"].ToString());
                        ProcessExtensions.StartProcessAsCurrentUser(exePath, Data[0]["event"].ToString());
                        ProcessExtensions.StartProcessAsCurrentUser(exeConsolePath);

                        /*ProcessStartInfo info = new ProcessStartInfo(exeConsolePath);
                         * info.UseShellExecute = false;
                         * info.RedirectStandardError = true;
                         * info.RedirectStandardInput = true;
                         * info.RedirectStandardOutput = true;
                         * info.CreateNoWindow = true;
                         * info.ErrorDialog = false;
                         * info.WindowStyle = ProcessWindowStyle.Hidden;
                         *
                         * Process process = Process.Start(info);*/
                    }
                }
            });

            /*socket.On("CustomEvent", CustomEventHandler); // Handler can be method.
             * socket.On(9001, ItsOverNineThousands); // Type of event is JToken. So, it can be a number.
             * socket.Off(9001, ItsOverNineThousands);*/// Remove 9001 event handler.

            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            try
            {
                socket.Connect();
            }
            catch (Exception ex)
            {
                WriteToFile($"{ex.Message}");
            }
        }
예제 #22
0
 /// <summary>
 /// Sets up the Socket to use for communicating with the Machinations back-end.
 /// Gets called by <see cref="MnEntryPoint"/>.
 /// </summary>
 /// <param name="socketClient">SocketIOClient to use.</param>
 public void UseSocket(SocketIOClient socketClient)
 {
     _socketClient = socketClient;
 }
예제 #23
0
 private void SocketError(object sender, SocketIOClient.ErrorEventArgs e)
 {
     if ( e!= null) {
         string msg = e.Message;
         uiMessage += System.DateTime.Now.ToString("HH:mm : ")+ "Error: "+msg+"\n";
     }
 }
예제 #24
0
        private void onQuestion(SocketIOClient.Messages.IMessage data)
        {
            Console.WriteLine("\nonQuestion\n");
            Console.WriteLine("\n\n");
            Console.WriteLine(data.Json.ToJsonString());
            Console.WriteLine("\n\n");

            initProgressBar();

            QuestionDataRoot root = Newtonsoft.Json.JsonConvert.DeserializeObject<QuestionDataRoot>(data.Json.ToJsonString());
            //QuestionData questionData = root.args[0];

            _lastQestionText = root.args[0];

            UpdateAction = questionWaitUpdate;
        }
예제 #25
0
 private void onPlaceCommanders(SocketIOClient.Messages.IMessage data)
 {
     _updateAction = placeCommanderUpdate;
 }
예제 #26
0
        //Wait for the player X to make a move
        //Scan for other players moves
        //Scan for illegual player moves
        private void onMoveRequested(SocketIOClient.Messages.IMessage data)
        {
            clearProgressAndDialog();

            Console.WriteLine("\nmessage : \n" + data.Json.ToJsonString() + "\n");

            //do stuff
            MoveData move;
            MoveRoot root = Newtonsoft.Json.JsonConvert.DeserializeObject<MoveRoot>(data.Json.ToJsonString());
            move = root.args[0];

            Console.WriteLine(" \n player to move is : " + move.id + "\n");

            initMove(move.id);
        }
예제 #27
0
 private void onCaptureTerritories(SocketIOClient.Messages.IMessage data)
 {
     Console.WriteLine("\n oncaptureteritories \n" + data.Json.ToJsonString());
     //Switch update to pick zone
     List<int> players;
     List<int> nbZones = new List<int>() { 2, 1, 1, 0 };
     CaptureInfo capInfo;
     CaptureInfoRoot obj = Newtonsoft.Json.JsonConvert.DeserializeObject<CaptureInfoRoot>(data.Json.ToJsonString());
     capInfo = obj.args[0];
     players = capInfo.orderedPlayers;
     _updateAction = delegate(float delta) { pickZonesForPLayers(players, nbZones, delta); };
     clearProgressAndDialog();
 }
예제 #28
0
 public SODMessage(SocketIOClient.Messages.JsonEncodedEventMessage msg)
 {
     this.eventName = msg.Name; //name of event received
     this.data = msg.Args[0]; //content of message
     if (msg.Args[0] is Dictionary<String, dynamic>)
     {
         this.data = (Dictionary<String, dynamic>)data;
     }
     this.data = JsonConvert.DeserializeObject(this.data);
     this.PID = -1; //Do not return a valid PID, because you should not be able to reply to a callback
 }
예제 #29
0
        private void onResults(SocketIOClient.Messages.IMessage data)
        {
            Console.WriteLine("\n on results \n");
            Console.WriteLine(data.Json.ToJsonString());

            for (int i = 0; i < MyGame.NUMBER_OF_PLAYER; ++i)
            {
                PlayerData.Instance[i].Score = _map.getNbOfZonesForOwner(i);
                Console.WriteLine("\n\n player " + i + " score :" + PlayerData.Instance[i].Score + "\n");
            }

            //ResultRoot res = Newtonsoft.Json.JsonConvert.DeserializeObject<ResultRoot>(data.Json.ToJsonString());
            endGameCallback();
        }
예제 #30
0
 private void MajPlayerInfo(SocketIOClient.Messages.IMessage data)
 {
     Console.WriteLine("\n \n " + data.Json.ToJsonString() + "\n \n");
     Console.WriteLine("in maj player info");
     PlayerInfo player = null;
     //player = PlayerInfo.Deserialize(message.Json.ToJsonString());//(PlayerInfo)message.Json.GetFirstArgAs<PlayerInfo>();
     PlayerInfoRoot obj = Newtonsoft.Json.JsonConvert.DeserializeObject<PlayerInfoRoot>(data.Json.ToJsonString());
     player = obj.args[0];
     for (int i = 0; i < player.territories.Count; ++i)
     {
         Console.WriteLine(" setting zone : " + (player.territories[i] + 1) + " owner to " + player.gameID);
         _map.setZoneOwner(player.territories[i] + 1, player.gameID);
     }
 }
예제 #31
0
 public WebSocket(string url)
 {
     Client = SocketIOClient.Connect(url);
 }
 private void socket_Error(object sender, SocketIOClient.ErrorEventArgs e)
 {
     Logger.LogTrace("socket error " + e.Message);          
     Logger.LogError(e.Exception);
     Debug.Assert(false);
 }
예제 #33
0
            public SODMessage(SocketIOClient.Messages.IMessage msg)
            {
                this.eventName = msg.Json.Name; //name of event received
                if (msg.Json.Args != null) this.data = msg.Json.Args[0]; //content of message

                //Console.WriteLine("->Before regexing this.data: "+this.data);
                //try to get the PID using regex and matching with the raw message received
                Regex r = new Regex(@"\d:(?<ack>\d+)\+::", RegexOptions.None);
                Match m = r.Match(msg.RawMessage);
                if (m.Success) {
                    this.PID = Convert.ToInt32(m.Groups["ack"].Value);
                    //Console.WriteLine("message with request - PID: " + this.PID);
                }
                else{
                   // Console.WriteLine("message without request.");
                    this.PID = -1; //No ackID found, most likely because the sender of the message is not expecting a reply
                }
            }
예제 #34
0
        private void OnPlayerConnect(SocketIOClient.Messages.IMessage message)
        {
            Console.WriteLine("OnPlayerConnect");
            //Get info from message
            Console.WriteLine("\n message : " + message.Json.ToJsonString() + "\n");
            PlayerInfo player = null;

            PlayerInfoRoot obj = Newtonsoft.Json.JsonConvert.DeserializeObject<PlayerInfoRoot>(message.Json.ToJsonString());
            player = obj.args[0];
            Console.WriteLine("player name " + player.pseudo);
            if (PlayerData.Instance[player.gameID].Name == null || PlayerData.Instance[player.gameID].Name.Length == 0)
            {
                PlayerData.Instance[player.gameID].Name = player.pseudo;
                InitPlayerUI(player.gameID);
            }
        }
예제 #35
0
        private void onQuestionAnswered(SocketIOClient.Messages.IMessage data)
        {
            Console.WriteLine(" on question answer message : \n" + data.Json.ToJsonString());

            AnswerList answers;
            AnswersRoot obj = Newtonsoft.Json.JsonConvert.DeserializeObject<AnswersRoot>(data.Json.ToJsonString());

            answers = obj.args[0];

            initAnswerUI(answers.orderedAnswers);

            clearProgressAndDialog();
            /*ServerCom.Instance.Socket.Emit("timeout", new
            {
                id = 0//_questionId
            });*/

            _timeSinceAnswerDisplayStart = 0f;
            UpdateAction = delegate(float dt) { answersDisplayUpdate(dt, afterAnswerDisplayPhase1); };
        }
예제 #36
0
    private void SocketMessage(object sender, SocketIOClient.MessageEventArgs e)
    {
        if ( e!= null && e.Message.Event == "message") {
            string msg = e.Message.MessageText;
            //uiMessage += "Success: "+msg+"\n";

            if (!tryLogin) return;

            var node = SimpleJSON.JSON.Parse(msg);

            if (node["type"].Value=="PlayerJoin")
            {
                var data = node["data"];

                string[] position = data["position"].ToString().Replace("\"","").Split(';');
                Player tmpPlayer = new Player(data["name"],
                    new Vector3(
                        float.Parse(position[0]),
                        float.Parse(position[1]),
                        float.Parse(position[2]))
                    );

                playersToAdd.Add(tmpPlayer);
            }

            if (node["type"].Value=="PlayerLogin")
            {
                var data = node["data"];

                string[] position = data["position"].ToString().Replace("\"","").Split(';');
                Player tmpPlayer = new Player(data["name"],
                    new Vector3(
                        float.Parse(position[0]),
                        float.Parse(position[1]),
                        float.Parse(position[2]))
                    );

                updatePosition = tmpPlayer.Position;
                moveToPosition = updatePosition;

                JSONArray otherPLayers = data["players"].AsArray;
                foreach (var objJSON in otherPLayers.Childs)
                {

                    string[] othPosition = objJSON["position"].ToString().Replace("\"","").Split(';');
                    Player othPlayer = new Player(objJSON["name"],
                    new Vector3(
                        float.Parse(othPosition[0]),
                        float.Parse(othPosition[1]),
                        float.Parse(othPosition[2]))
                    );

                    playersToAdd.Add(othPlayer);
                }

                playersToAdd.Add(tmpPlayer);
                return;
            }

            if (node["type"].Value=="PlayerUpdate")
            {
                var data = node["data"];

                if (allPlayers.ContainsKey(data["name"]))
                {
                    string[] position = data["position"].Value.Split(';');
                    updatePosition = new Vector3(
                            float.Parse(position[0]),
                            float.Parse(position[1]),
                            float.Parse(position[2])
                        );
                    moveToPosition = updatePosition;
                }
            }

            if (node["type"].Value=="PlayerDisconnect")
            {
                var data = node["data"];

                if (allPlayers.ContainsKey(data["name"]))
                {
                    allPlayers[data["name"]].canKill=true;
                }
            }
        }
    }