정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

PeerFinder.FindAllPeersAsync | findAllPeersAsync Method

무선 범위 내에서 동일한 응용 프로그램을 실행하는 피어 컴퓨터를 비동기적으로 탐색합니다.

구문


Windows.Networking.Proximity.PeerFinder.findAllPeersAsync().done( /* 성공 및 오류 처리기 */ );

매개 변수

이 메서드에는 매개 변수가 없습니다.

반환 값

형식: IAsyncOperation<IVectorView>

Wi-Fi Direct를 사용하여 피어를 검색하는 비동기 작업입니다.

설명

비동기 검색 작업이 성공적으로 완료되면 무선 범위 내에 있는 피어 목록이 반환됩니다. 피어는 일치하는 앱 ID를 가지고 포그라운드에서 실행되는 응용 프로그램이 있는 컴퓨터입니다. 피어는 대체 ID로 지정된 검색 ID도 일치하는 검색 ID로 가질 수 있습니다. 자세한 내용은 AlternateIdentities를 참조하십시오.

SupportedDiscoveryTypes 속성을 사용하면 지원되는 Wi-Fi Direct를 사용하여 피어를 검색할지 여부를 확인할 수 있습니다.

앱에서 ConnectAsync 메서드를 호출하여 피어와의 연결을 만들 경우 앱은 더 이상 연결을 알리지 않고 앱이 Close 메서드를 호출하여 소켓 연결을 닫을 때까지 앱은 FindAllPeersAsync 메서드에서 발견되지 않습니다.

컴퓨터가 무선 범위 내에 있고 피어 앱이 포그라운드에서 실행되고 있는 경우에만 피어를 찾을 수 있습니다. 피어 앱이 백그라운드에서 실행 중인 경우 근접성은 피어 연결을 알리지 않습니다.

FindAllPeersAsync 메서드에 대한 대안으로 PeerWatcher 개체를 사용하여 동적으로 범위 내에서 발견되는 피어 앱을 검색할 수 있습니다.

Windows Phone 8

Wi-Fi Direct는 Windows Phone 8에서 지원되지 않습니다. 자세한 내용은 근접 연결을 참조하십시오.

예제


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


요구 사항

지원되는 최소 클라이언트

Windows 8

지원되는 최소 서버

Windows Server 2012

지원되는 최소 전화

Windows Phone 8

Namespace

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

Metadata

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]
ID_CAP_NETWORKING [Windows Phone]

참고 항목

PeerFinder
AlternateIdentities
SupportedDiscoveryTypes
PeerWatcher
근접 연결 및 탭(JavaScript)
근접 연결 및 탭(C#/VB/C++)
샘플
근접 연결 샘플

 

 

표시: