PeerFinder.TriggeredConnectionStateChanged | triggeredconnectionstatechanged Event

Tritt während einer Tippgeste von einem Remotepeer auf.

Syntax


function onTriggeredConnectionStateChanged(eventArgs) { /* Ihr Code */ }
 
// addEventListener syntax
peerFinder.addEventListener("triggeredconnectionstatechanged", onTriggeredConnectionStateChanged);
peerFinder.removeEventListener("triggeredconnectionstatechanged", onTriggeredConnectionStateChanged);
 
- or -

peerFinder.ontriggeredconnectionstatechanged = onTriggeredConnectionStateChanged;


Ereignisinformationen

Delegat TypedEventHandler<Object, TriggeredConnectionStateChangedEventArgs>

Hinweise

Sie können bestimmen, wann ein Peer zur Verbindungsherstellung verfügbar ist, sowie den Status einer Verbindung zu einem Peer festlegen, indem Sie das TriggeredConnectionStateChanged-Ereignis verwenden. Verwenden Sie das TriggeredConnectionStateChanged-Ereignis, um zu ermitteln, wann ein neuer Peer gefunden wurde, und um auf die Verbindung zu diesem Peer zuzugreifen, nachdem Sie die Verbindung beendet haben.

Das TriggeredConnectionStateChanged-Ereignis tritt mehrmals während einer Tippgeste auf. Sie können bestimmen, an welcher Stelle Sie sich im Vorgang der Verbindungsherstellung befinden, indem Sie die State-Eigenschaften verwenden.

Der erste State-Wert in einer Näherungsverbindung ist PeerFound. An diesem Punkt können Sie Benutzern der App mitteilen, dass die Nähegeste abgeschlossen ist und sie ihre Geräte wegziehen können. Für die weitere Verbindungsherstellung wird ein anderes Transportprotokoll wie TCP/IP oder Bluetooth verwendet.

Wenn die State-Eigenschaft Connecting zurückgibt, hat Ihr Gerät die Tippgeste initiiert. Wenn die State-Eigenschaft Listening zurückgibt, dann hat das andere Gerät die Tippgeste initiiert. Diese Informationen sind hilfreich beim Ermitteln, welcher Peer die Kommunikation initiieren soll, wenn die Verbindung fertig gestellt wurde.

Wenn die State-Eigenschaft Completed zurückgibt, können Sie auf die Socket-Eigenschaft zugreifen, um einen Verweis auf ein StreamSocket-Objekt zu erhalten. Sie können diesen Verweis verwenden, um über ein beständiges Übertragungsprotokoll wie TCP/IP oder Bluetooth mit der Peer-App zu kommunizieren.

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
Nähe und Tippen (JavaScript)
Nähe und Tippen (C#/VB/C++)
Beispiele
Nähebeispiel

 

 

Anzeigen:
© 2014 Microsoft