Connects to a peer discovered by a call to the FindAllPeersAsync method.
Syntax
Windows.Networking.Proximity.PeerFinder.connectAsync(peerInformation).done( /* Your success and error handlers */ );
Parameters
- peerInformation
-
Type: PeerInformation
A peer information object representing the peer to connect to.
Return value
Type: IAsyncOperation<StreamSocket>
An asynchronous operation for connecting to a remote peer using the supplied StreamSocket object.
Remarks
You can obtain an instance of a PeerInformation object for a peer from a call to the FindAllPeersAsync method, or in a handler for the ConnectionRequested event.
If an app calls the ConnectAsync method to create a connection with a peer, the app will no longer advertise for a connection and will not be found by the FindAllPeersAsync method until the app calls the Close method to close the socket connection.
If you open a socket connection by calling the ConnectAsync method, only one socket connection can be open at a time for the computer. If your app, or another app calls the ConnectAsync method, then the existing socket connection will close.
Windows Phone 8
Wi-Fi Direct is not supported on Windows Phone 8. For more information, see Proximity.
Examples
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); }
Requirements
|
Minimum supported client | Windows 8 |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Minimum supported phone | Windows Phone 8 |
|
Namespace |
|
|
Metadata |
|
|
Capabilities |
|
See also
- PeerFinder
- FindAllPeersAsync
- PeerInformation
- ConnectionRequested
- Proximity and Tapping (JavaScript)
- Proximity and Tapping (C#/VB/C++)
- Samples
- Proximity sample
Build date: 2/25/2013