Exemplo n.º 1
0
    public override void OnReceivedBroadcast(string aFromAddress, string aRawData)
    {
        BroadcastData data = new BroadcastData();
        data.FromString(aRawData);

        // DEBUG LOG
        broadcastLogCounter += 1;
        receivedBroadcastLog.Enqueue(broadcastLogTokens[broadcastLogCounter % broadcastLogTokens.Length] + " " + aRawData);
        if (receivedBroadcastLog.Count > maxLogLines) {
            receivedBroadcastLog.Dequeue();
        }

        var server = new DiscoveredServer(data);
        server.rawData = aRawData;
        server.ipAddress = aFromAddress;
        server.timestamp = Time.time;

        bool newData = false;
        if (!discoveredServers.ContainsKey(aFromAddress))
        {
            // New server
            discoveredServers.Add(aFromAddress, server);
            newData = true;
        }
        else
        {
            if (discoveredServers[aFromAddress].rawData != aRawData)
            {
                // Old server with new info
                discoveredServers[aFromAddress] = server;
                newData = true;
            }
            else
            {
                // Just update the timestamp
                discoveredServers[aFromAddress].timestamp = Time.time;
                newData = false;
            }
        }

        networkManager.OnReceivedBroadcast(aFromAddress, aRawData);

        if (newData)
        {
            networkManager.OnDiscoveredServer(server);
        }
    }
Exemplo n.º 2
0
 public DiscoveredServer(BroadcastData aData)
 {
     version = aData.version;
     peerId = aData.peerId;
     isOpen = aData.isOpen;
     numPlayers = aData.numPlayers;
     serverScore = aData.serverScore;
     privateTeamKey = aData.privateTeamKey;
 }
Exemplo n.º 3
0
    public void Setup(CaptainsMessNetworkManager aNetworkManager)
    {
        networkManager = aNetworkManager;
        broadcastKey = Mathf.Abs(aNetworkManager.broadcastIdentifier.GetHashCode()); // Make sure broadcastKey matches client
        isOpen = false;
        numPlayers = 0;

        broadcastDataObject = new BroadcastData();
        broadcastDataObject.peerId = networkManager.peerId;
        UpdateBroadcastData();
    }