PeerFinder.FindAllPeersAsync | findAllPeersAsync Method

Cerca in modo asincrono i computer peer che eseguono la stessa applicazione all'interno dell'intervallo wireless.

Sintassi


Windows.Networking.Proximity.PeerFinder.findAllPeersAsync().done( /* Esito positivo e gestori di errori */ );

Parametri

Metodo non contiene parametri.

Valore restituito

Type: IAsyncOperation<IVectorView>

L'operazione asincrona per individuare i peer tramite Wi-Fi diretto.

Note

Quando l'operazione asincrona di esplorazione viene completata correttamente, restituisce un elenco di peer compresi in un intervallo wireless. Un peer è un computer in cui è disponibile un'applicazione in esecuzione in primo piano con un ID app corrispondente. Un peer può disporre anche di un ID di visualizzazione corrispondente specificato come identità alternativa. Per ulteriori informazioni, vedere AlternateIdentities.

È possibile utilizzare la proprietà SupportedDiscoveryTypes per determinare se l'individuazione dei peer tramite Wi-Fi Direct è supportata.

Se un'applicazione chiama il metodo ConnectAsync per creare una connessione con un peer, l'applicazione non annuncerà più una connessione e non verrà trovata con il metodo FindAllPeersAsync finché l'applicazione non chiamerà il metodo Close per chiudere la connessione socket.

Si troveranno solo i peer dove il computer è compreso nell'intervallo wireless e l'applicazione peer è in esecuzione in primo piano. Se un'applicazione peer è in esecuzione in background, la prossimità non annuncia le connessioni peer.

Come alternativa al metodo FindAllPeersAsync, è possibile cercare dinamicamente le applicazioni peer quando vengono rilevate nell'intervallo tramite l'oggetto PeerWatcher.

Windows Phone 8

Wi-Fi Direct non è supportato in Windows Phone 8. Per ulteriori informazioni, vedere Prossimità.

Esempi


var started = false;

// Click event for "Advertise" button.
function advertiseForPeers(launchedFromTap) {
    Windows.Networking.Proximity.PeerFinder.displayName = displayNameTextBox.Text;

    if (Windows.Networking.Proximity.PeerFinder.supportedDiscoveryTypes &
        Windows.Networking.Proximity.PeerDiscoveryTypes.triggered) {

        Windows.Networking.Proximity.PeerFinder.addEventListener(
            "triggeredconnectionstatechanged", triggeredConnectionStateChanged);

        id("messageDiv").innerHTML +=
            "You can tap to connect a peer device that is " +
            "also advertising for a connection.<br />";
    } else {
        id("messageDiv").innerHTML +=
            "Tap to connect is not supported.<br />";
    }

    if (!launchedFromTap) {
        if (!(Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes &
              Windows.Networking.Proximity.PeerDiscoveryTypes.Browse)) {
            id("messageDiv").innerHTML +=
                "Peer discovery using Wi-Fi Direct is not supported.<br />";
        }
    }

    if (!started) {
        Windows.Networking.Proximity.PeerFinder.start();
        started = true;
    }
}

function triggeredConnectionStateChanged(e) {
    if (e.state === Windows.Networking.Proximity.TriggeredConnectState.peerFound) {
        id("messageDiv").innerHTML +=
            "Peer found. You may now pull your devices out of proximity.<br />";
    }
    if (e.state === Windows.Networking.Proximity.TriggeredConnectState.completed) {
        id("messageDiv").innerHTML += "Connected. You may now send a message.<br />";
        sendMessage(e.socket);
    }
}


// Click event for "Browse" button.
function findPeers() {
    if (Windows.Networking.Proximity.PeerFinder.supportedDiscoveryTypes &
        Windows.Networking.Proximity.PeerDiscoveryTypes.browse) {

        Windows.Networking.Proximity.PeerFinder.findAllPeersAsync().done(
    function (peerInfoCollection) {
        if (peerInfoCollection.length > 0) {
            // Connect to first peer found - example only.
            // In your app, provide the user with a list of available peers.
            connectToPeer(peerInfoCollection[0]);
        }
    },
    function (err) {
        id("messageDiv").innerHTML += "Error finding peers: " + err + "<br />";
    });
    } else {
        id("messageDiv").innerHTML +=
        "Peer discovery using Wi-Fi Direct is not supported.<br />";
    }
}

function connectToPeer(peerInfo) {
    id("messageDiv").innerHTML += ("Peer found. Connecting to " + peerInfo.displayName + "<br />");
    Windows.Networking.Proximity.PeerFinder.connectAsync(peerInfo).done(
        function (socket) {
            id("messageDiv").innerHTML += "Connection successful. You may now send messages.<br />";
            sendMessage(socket);
        },
        function (err) {
            id("messageDiv").innerHTML += "Connection failed: " + err + "<br />";
        });

    requestingPeer = null;
}

function stopFindingPeers() {
    Windows.Networking.Proximity.PeerFinder.stop();
    started = false;
    if (proximitySocket != null) { closeSocket(); }
}

// Handle external connection requests.
var requestingPeer;

function connectionRequested(e) {
    id("messageDiv").innerHTML +=
        "Connection requested by " + e.peerInformation.DisplayName + ". " +
        "Click 'Accept Connection' to connect.";
    requestingPeer = e.PeerInformation;
}

function acceptConnection() {
    if (requestingPeer == null) {
        id("messageDiv").innerHTML += "No peer connection has been requested.";
        return;
    }

    connectToPeer(requestingPeer);
}


Requisiti

Client supportato minimo

Windows 8

Server supportato minimo

Windows Server 2012

Telefono supportato minimo

Windows Phone 8

Spazio dei nomi

Windows.Networking.Proximity
Windows::Networking::Proximity [C++]

Metadati

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]
ID_CAP_NETWORKING [Windows Phone]

Vedere anche

PeerFinder
AlternateIdentities
SupportedDiscoveryTypes
PeerWatcher
Prossimità e tocco (JavaScript)
Prossimità e tocco (C#/VB/C++)
Esempi
Esempio di prossimità

 

 

Mostra:
© 2014 Microsoft