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) |
|---|
Anmerkungen
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 Wifi-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
|
Unterstützte Mindestversion (Client) | Windows 8 |
|---|---|
|
Unterstützte Mindestversion (Server) | Windows Server 2012 |
|
Unterstützte Mindestversion (Telefon) | Windows Phone 8 |
|
Namespace |
|
|
Metadaten |
|
Weitere Informationen
