PeerFinder.FindAllPeersAsync | findAllPeersAsync Method

Sucht asynchron Computer in der Umgebung, die die gleiche App innerhalb des Funkbereichs ausführen.

Syntax


Windows.Networking.Proximity.PeerFinder.findAllPeersAsync().done( /* Erfolgs- und Fehlerhandler */ );

Parameter

Methode besitzt keine Parameter.

Rückgabewert

Typ: IAsyncOperation<IVectorView>

Die asynchrone Operation zum Suchen für Peers mithilfe von Wi-Fi Direct.

Hinweise

Wenn der asynchrone Durchsuchvorgang erfolgreich beendet wird, wird eine Liste von Peers zurückgegeben, die innerhalb des Funkbereichs liegen. Ein Peer ist ein Computer, auf dem eine Anwendung mit einer übereinstimmenden App-ID im Vordergrund ausgeführt wird. Ein Peer kann eine übereinstimmende Such-ID aufweisen, die als alternative Identität angegeben wird. Weitere Informationen finden Sie unter AlternateIdentities.

Sie können die SupportedDiscoveryTypes-Eigenschaft verwenden, um festzustellen, ob Suchvorgänge für Peers mithilfe von Wi-Fi Direct unterstützt wird.

Wenn eine Anwendung die ConnectAsync-Methode aufruft, um eine Verbindung mit einem Peer herzustellen, kündigt die App nicht mehr länger eine Verbindung an und wird erst von der FindAllPeersAsync-Methode gefunden, wenn die App die Close-Methode aufruft, um die Socketverbindung zu schließen.

Es können nur dort Peers gefunden werden, wo sich der Computer innerhalb des Funkbereichs befindet und die Peer-App im Vordergrund ausgeführt wird. Wenn eine Peer-App im Hintergrund ausgeführt wird, werden durch die Nähe keine Peer-Verbindungen angekündigt.

Alternativ zur FindAllPeersAsync-Methode können Sie nach Peer-Apps dynamisch suchen, die innerhalb des Bereichs mithilfe des PeerWatcher-Objekts ermittelt werden.

Windows Phone 8

Wi-Fi Direct wird unter Windows Phone 8 nicht unterstützt. Weitere Informationen finden Sie unter Näherung.

Beispiele


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);
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Mindestens unterstütztes Telefon

Windows Phone 8

Namespace

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

Metadaten

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]
ID_CAP_NETWORKING [Windows Phone]

Siehe auch

PeerFinder
AlternateIdentities
SupportedDiscoveryTypes
PeerWatcher
Nähe und Tippen (JavaScript)
Nähe und Tippen (C#/VB/C++)
Beispiele
Nähebeispiel

 

 

Anzeigen:
© 2014 Microsoft