Exemple #1
0
        private void Awake()
        {
            // Init the MainThreadManager
            MainThreadManager.Create();

            mpMenu   = this.GetComponentInParent <MultiplayerMenu>();
            Settings = mpMenu.Settings;
            serverListEntryTemplateHeight = ((RectTransform)serverListEntryTemplate.transform).rect.height;

            masterServerEnabled   = !string.IsNullOrEmpty(Settings.masterServerHost);
            localDiscoveryEnabled = Settings.getLocalNetworkConnections;

            // No need to do anything else if local discovery or master server is not enabled
            if (!localDiscoveryEnabled && !masterServerEnabled)
            {
                return;
            }

            sqpClient = new SQPClient();

            if (localDiscoveryEnabled)
            {
                NetWorker.localServerLocated += LocalServerLocated;
                NetWorker.RefreshLocalUdpListings();
            }

            if (masterServerEnabled)
            {
                RefreshMasterServerListings();
            }
        }
    private void Start()
    {
        ipAddress.text  = "127.0.0.1";
        portNumber.text = "15937";

        for (int i = 0; i < ToggledButtons.Length; ++i)
        {
            Button btn = ToggledButtons[i].GetComponent <Button>();
            if (btn != null)
            {
                _uiButtons.Add(btn);
            }
        }

        if (!useTCP)
        {
            // Do any firewall opening requests on the operating system
            NetWorker.PingForFirewall(ushort.Parse(portNumber.text));
        }

        if (useMainThreadManagerForRPCs)
        {
            Rpc.MainThreadRunner = MainThreadManager.Instance;
        }

        if (getLocalNetworkConnections)
        {
            NetWorker.localServerLocated += LocalServerLocated;
            NetWorker.RefreshLocalUdpListings(ushort.Parse(portNumber.text));
        }
    }
    public void RefreshServers()
    {
        NetWorker.localServerLocated -= LocalServerLocated;
        NetWorker.localServerLocated += LocalServerLocated;
        _AvailableServers.Clear();

        NetWorker.RefreshLocalUdpListings(ushort.Parse(portNumber.text));
    }
Exemple #4
0
    private void Start()
    {
        ipAddress.text  = "127.0.0.1";
        portNumber.text = "15937";

        // Do any firewall opening requests on the operating system
        NetWorker.PingForFirewall(ushort.Parse(portNumber.text));
        NetWorker.RefreshLocalUdpListings(ushort.Parse(portNumber.text));

        Rpc.MainThreadRunner = MainThreadManager.Instance;
    }
 IEnumerator CheckForLocalHost()
 {
     for (int ii = 0; ii < 3; ii++)
     {
         NetWorker.RefreshLocalUdpListings(portNumber);
         yield return(new WaitForSeconds(1));
     }
     if (!alreadyClient)
     {
         Host();
     }
 }
Exemple #6
0
    public void Client_RefreshServerList()
    {
        if (IsRefreshingList)
        {
            return;
        }

        IsRefreshingList = true;
        NetWorker.RefreshLocalUdpListings(SERVER_PORT_NUMBER);
        Client_ServerListRefreshStarted?.Invoke();

        StartCoroutine(InvokeEventWhenListRefreshed(Time.time));
    }
Exemple #7
0
 private void Update()
 {
     /*
      * if (Input.GetKeyDown(KeyCode.H))
      *      Host();
      * else if (Input.GetKeyDown(KeyCode.C))
      *      Connect(); */
     if (Input.GetKeyDown(KeyCode.L))
     {
         NetWorker.localServerLocated -= TestLocalServerFind;
         NetWorker.localServerLocated += TestLocalServerFind;
         NetWorker.RefreshLocalUdpListings();
     }
 }
Exemple #8
0
    private void Start()
    {
        m_IPAddress.text  = "127.0.0.1";
        m_PortNumber.text = "15937";

        if (!m_UseTCP)
        {
            // Do any firewall opening requests on the operating system
            NetWorker.PingForFirewall(ushort.Parse(m_PortNumber.text));
        }

        if (m_UseMainThreadManagerForRPCs)
        {
            Rpc.MainThreadRunner = MainThreadManager.Instance;
        }

        if (m_GetLocalNetworkConnections)
        {
            NetWorker.localServerLocated += LocalServerLocated;
            NetWorker.RefreshLocalUdpListings(ushort.Parse(m_PortNumber.text));
        }
    }
Exemple #9
0
    // Use this for initialization
    void Start()
    {
        //versionText.text = PlayerSettings.bundleVersion;

        playerList = new List <Player>();

        // Ограничиваем фпс в случае, если это будет запущено под линуксом без графики
        Application.targetFrameRate = 60;

        // Если ник пустой, то делаем рандомный
        if (nickname == "")
        {
            nickname = "Player " + Random.Range(0, 65536).ToString();
        }
        ifNickname.text = nickname;

        // Обновление строчек, где указан порт
        ifPortNumber.text  = portNumber.ToString();
        lblPortNumber.text = portNumber.ToString();

        // Обновление строчек, где указан айпи
        ifIpAddress.text = ipAddress;

        NetWorker.PingForFirewall((ushort)portNumber);

        if (useMainThreadManagerForRPCs)
        {
            Rpc.MainThreadRunner = MainThreadManager.Instance;
        }

        if (getLocalNetworkConnections)
        {
            NetWorker.localServerLocated += LocalServerLocated;
            NetWorker.RefreshLocalUdpListings((ushort)portNumber);
        }

        LoadPrefs();
    }
Exemple #10
0
        private void Update()
        {
            // No need to do anything if local discovery or master server is not enabled
            if (!masterServerEnabled && !localDiscoveryEnabled)
            {
                return;
            }

            if (Time.time > nextListUpdateTime)
            {
                if (localDiscoveryEnabled)
                {
                    NetWorker.RefreshLocalUdpListings();
                }

                if (masterServerEnabled)
                {
                    RefreshMasterServerListings();
                }

                nextListUpdateTime = Time.time + 5.0f + UnityEngine.Random.Range(0.0f, 1.0f);
            }

            if (sqpClient != null)
            {
                sqpClient.Update();

                foreach (var server in serverList)
                {
                    UpdateItem(server);
                    if (Time.time > server.NextUpdate && server.SqpQuery.State == ClientState.Idle)
                    {
                        sqpClient.SendChallengeRequest(server.SqpQuery);
                        server.NextUpdate = Time.time + 5.0f + UnityEngine.Random.Range(0.0f, 1.0f);
                    }
                }
            }
        }
Exemple #11
0
    private void Start()
    {
        ipAddress  = "127.0.0.1";
        portNumber = "15937";

        if (!useTCP)
        {
            // Do any firewall opening requests on the operating system
            NetWorker.PingForFirewall(ushort.Parse(portNumber));
        }

        if (useMainThreadManagerForRPCs)
        {
            Rpc.MainThreadRunner = MainThreadManager.Instance;
        }

        if (getLocalNetworkConnections)
        {
            NetWorker.localServerLocated += LocalServerLocated;
            NetWorker.RefreshLocalUdpListings(ushort.Parse(portNumber));
        }

        //if (clientMode == ClientMode.Client)
        //    Connect();
        //else if (clientMode == ClientMode.Server)
        //    Host();

        if (Application.isEditor)
        {
            Host();
        }
        else
        {
            Connect();
        }
    }
Exemple #12
0
 public void RefreshLocal()
 {
     NetWorker.RefreshLocalUdpListings(ServerInfo.SERVER_PORT);
 }
Exemple #13
0
 // Update is called once per frame
 public void Refresh()
 {
     NetWorker.RefreshLocalUdpListings(ushort.Parse(portNumber.text));
 }
Exemple #14
0
    public void Refresh()
    {
        ClearServers();

        if (lan)
        {
            NetWorker.RefreshLocalUdpListings(ushort.Parse(portNumber.text));
            return;
        }

        // The Master Server communicates over TCP
        TCPMasterClient client = new TCPMasterClient();

        // Once this client has been accepted by the master server it should sent it's get request
        client.serverAccepted += x =>
        {
            try
            {
                // The overall game id to select from
                string gameId = "myGame";

                // The game type to choose from, if "any" then all types will be returned
                string gameType = "any";

                // The game mode to choose from, if "all" then all game modes will be returned
                string gameMode = "all";

                // Create the get request with the desired filters
                JSONNode  sendData = JSONNode.Parse("{}");
                JSONClass getData  = new JSONClass();

                // The id of the game to get
                getData.Add("id", gameId);
                getData.Add("type", gameType);
                getData.Add("mode", gameMode);

                sendData.Add("get", getData);

                // Send the request to the server
                client.Send(BeardedManStudios.Forge.Networking.Frame.Text.CreateFromString(client.Time.Timestep, sendData.ToString(), true, Receivers.Server, MessageGroupIds.MASTER_SERVER_GET, true));
            }
            catch
            {
                // If anything fails, then this client needs to be disconnected
                client.Disconnect(true);
                client = null;
            }
        };

        // An event that is raised when the server responds with hosts
        client.textMessageReceived += (player, frame, sender) =>
        {
            try
            {
                // Get the list of hosts to iterate through from the frame payload
                JSONNode data = JSONNode.Parse(frame.ToString());
                if (data["hosts"] != null)
                {
                    // Create a C# object for the response from the master server
                    MasterServerResponse response = new MasterServerResponse(data["hosts"].AsArray);

                    if (response != null && response.serverResponse.Count > 0)
                    {
                        // Go through all of the available hosts and add them to the server browser
                        foreach (MasterServerResponse.Server server in response.serverResponse)
                        {
                            Debug.Log("Found server " + server.Name);

                            // Update UI

                            MainThreadManager.Run(() =>
                            {
                                AddServer(server.Name, server.Address, server.PlayerCount, server.Mode);
                            });
                        }
                    }
                }
            }
            finally
            {
                if (client != null)
                {
                    // If we succeed or fail the client needs to disconnect from the Master Server
                    client.Disconnect(true);
                    client = null;
                }
            }
        };

        client.Connect(masterServerHost, (ushort)masterServerPort);
    }
Exemple #15
0
 public void RefreshMatches()
 {
     ClearMatches();
     NetWorker.RefreshLocalUdpListings(Server.Port);
 }