FindAllPeersAsync | findAllPeersAsync, méthode

PeerFinder.FindAllPeersAsync | findAllPeersAsync Method

Parcourt en mode asynchrone les ordinateurs homologues qui exécutent la même application dans la portée du réseau sans fil.

Syntaxe


Windows.Networking.Proximity.PeerFinder.findAllPeersAsync().done( /* Vos gestionnaires de succès et d'erreurs */ );

Paramètres

Ce Méthode n'a aucun paramètre.

Valeur de retour

Type: IAsyncOperation<IVectorView>

Opération asynchrone pour rechercher des homologues à l'aide du WiFi direct.

Remarques

Lorsque l'opération de navigation asynchrone se termine correctement, elle retourne une liste d'homologues qui se trouvent dans la portée du réseau sans fil. Un homologue est un ordinateur qui a une application qui fonctionne au premier plan avec un identificateur d'application correspondant. Un homologue peut également avoir un identificateur de parcours correspondant qui est spécifié comme une autre identité. Pour plus d'informations, consultez AlternateIdentities.

Vous pouvez utiliser la propriété SupportedDiscoveryTypes pour déterminer si la recherche d'homologues à l'aide du WiFi Direct est prise en charge.

Si une application appelle la méthode ConnectAsync pour créer une connexion avec un homologue, l'application ne publiera plus de connexion et ne sera pas identifiée par la méthode FindAllPeersAsync jusqu'à ce que l'application appelle la méthode Close pour fermer la connexion de socket.

Vous trouverez uniquement des homologues dans lesquels l'ordinateur est dans la portée du réseau sans fil et l'application homologue s'exécute au premier plan. Si une application homologue s'exécute en arrière-plan, la proximité ne publie pas les connexions homologues.

En tant qu'alternative à la méthode FindAllPeersAsync, vous pouvez rechercher dynamiquement des applications homologues à mesure qu'elles sont détectées dans la plage à l'aide de l'objet PeerWatcher.

Windows Phone 8

Le WiFi Direct n'est pas pris en charge sur Windows Phone 8. Pour plus d'informations, consultez Proximité.

Exemples


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


Conditions requises

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Téléphone minimal pris en charge

Windows Phone 8

Espace de noms

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

Métadonnées

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]
ID_CAP_NETWORKING [Windows Phone]

Voir aussi

PeerFinder
AlternateIdentities
SupportedDiscoveryTypes
PeerWatcher
Proximité et geste tactile (JavaScript)
Proximité et geste tactile (C#/VB/C++)
Exemples
Exemple de proximité

 

 

Afficher:
© 2016 Microsoft