PeerFinder.ConnectionRequested | connectionrequested event
Occurs when a remote peer requests a connection using the ConnectAsync method.
Syntax
Public Shared Event ConnectionRequested As TypedEventHandler(Of Object, ConnectionRequestedEventArgs)
Event information
| Delegate | TypedEventHandler<Object, ConnectionRequestedEventArgs> |
|---|
Remarks
The ConnectionRequested event occurs when a remote peer calls the FindAllPeersAsync method, finds the current peer, and passes that peer information to the ConnectAsync method to request a connection.
Examples
Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs) DisplayNameTextBox.Text = Windows.Networking.Proximity.PeerFinder.DisplayName AddHandler Windows.Networking.Proximity.PeerFinder.ConnectionRequested, AddressOf ConnectionRequested ' If activated from launch or from the background, create a peer connection. Dim args = TryCast(e.Parameter, Windows.ApplicationModel.Activation.LaunchActivatedEventArgs) If args IsNot Nothing AndAlso args.Kind = Windows.ApplicationModel.Activation.ActivationKind.Launch Then If args.Arguments = "Windows.Networking.Proximity.PeerFinder:StreamSocket" Then AdvertiseForPeersButton_Click() End If End If End Sub Protected Overrides Sub OnNavigatingFrom(e As Navigation.NavigatingCancelEventArgs) If _started Then ' Detach the callback handler (there can only be one PeerConnectProgress handler). RemoveHandler Windows.Networking.Proximity.PeerFinder.TriggeredConnectionStateChanged, AddressOf TriggeredConnectionStateChanged ' Detach the incoming connection request event handler. RemoveHandler Windows.Networking.Proximity.PeerFinder.ConnectionRequested, AddressOf ConnectionRequested Windows.Networking.Proximity.PeerFinder.Stop() CloseSocket() _started = False End If End Sub ' Write a message to MessageBlock on the UI thread. Private Async Sub WriteMessageText(message As String, Optional overwrite As Boolean = False) Await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, Sub() If overwrite Then MessageBlock.Text = message Else MessageBlock.Text &= message End If End Sub) End Sub Private _started As Boolean = False ' Click event handler for "Advertise" button. Private Sub AdvertiseForPeersButton_Click() If _started Then WriteMessageText("You are already advertising for a connection." & vbCrLf) Return End If Windows.Networking.Proximity.PeerFinder.DisplayName = DisplayNameTextBox.Text If ((Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes And Windows.Networking.Proximity.PeerDiscoveryTypes.Triggered) = Windows.Networking.Proximity.PeerDiscoveryTypes.Triggered) Then AddHandler Windows.Networking.Proximity.PeerFinder.TriggeredConnectionStateChanged, AddressOf TriggeredConnectionStateChanged WriteMessageText("You can tap to connect a peer device that is " & "also advertising for a connection." & vbCrLf) Else WriteMessageText("Tap to connect is not supported." & vbCrLf) End If If (Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes And Windows.Networking.Proximity.PeerDiscoveryTypes.Browse) <> Windows.Networking.Proximity.PeerDiscoveryTypes.Browse Then WriteMessageText("Peer discovery using Wifi-Direct is not supported." & vbCrLf) End If Windows.Networking.Proximity.PeerFinder.Start() _started = True End Sub Private Sub TriggeredConnectionStateChanged( sender As Object, e As Windows.Networking.Proximity.TriggeredConnectionStateChangedEventArgs) If e.State = Windows.Networking.Proximity.TriggeredConnectState.PeerFound Then WriteMessageText("Peer found. You may now pull your devices out of proximity." & vbCrLf) End If If e.State = Windows.Networking.Proximity.TriggeredConnectState.Completed Then WriteMessageText("Connected. You may now send a message." & vbCrLf) SendMessage(e.Socket) End If End Sub ' Click event handler for "Browse" button. Private Async Sub FindPeersButton_Click() If (Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes And Windows.Networking.Proximity.PeerDiscoveryTypes.Browse) <> Windows.Networking.Proximity.PeerDiscoveryTypes.Browse Then WriteMessageText("Peer discovery using Wifi-Direct is not supported." & vbCrLf) Return End If Try Dim peerInfoCollection = Await Windows.Networking.Proximity.PeerFinder.FindAllPeersAsync() If peerInfoCollection.Count > 0 Then ' Connect to first peer found - example only. ' In your app, provide the user with a list of available peers. ConnectToPeer(peerInfoCollection(0)) End If Catch err As Exception WriteMessageText("Error finding peers: " & err.Message & vbCrLf) End Try End Sub Private Async Sub ConnectToPeer(peerInfo As Windows.Networking.Proximity.PeerInformation) WriteMessageText("Peer found. Connecting to " & peerInfo.DisplayName & vbCrLf) Try Dim socket = Await Windows.Networking.Proximity.PeerFinder.ConnectAsync(peerInfo) WriteMessageText("Connection successful. You may now send messages." & vbCrLf) SendMessage(socket) Catch err As Exception WriteMessageText("Connection failed: " & err.Message & vbCrLf) End Try requestingPeer = Nothing End Sub ' Click event handler for "Stop" button. Private Sub StopFindingPeersButton_Click() _started = False Windows.Networking.Proximity.PeerFinder.Stop() If proximitySocket IsNot Nothing Then CloseSocket() End Sub ' Handle external connection requests. Private requestingPeer As Windows.Networking.Proximity.PeerInformation Private Sub ConnectionRequested(sender As Object, e As Windows.Networking.Proximity.ConnectionRequestedEventArgs) WriteMessageText("Connection requested by " & requestingPeer.DisplayName & ". " & "Click 'Accept Connection' to connect.") requestingPeer = e.PeerInformation End Sub Private Sub AcceptConnectionButton_Click() If requestingPeer Is Nothing Then WriteMessageText("No peer connection has been requested.") Return End If ConnectToPeer(requestingPeer) End Sub
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
- ConnectAsync
- Proximity and Tapping (JavaScript)
- Proximity and Tapping (C#/VB/C++)
- Samples
- Proximity sample
Build date: 2/25/2013