내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

PeerFinder.ConnectAsync | connectAsync Method

FindAllPeersAsync 메서드에 대한 호출로 발견한 피어에 연결합니다.

구문


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

매개 변수

peerInformation

형식: PeerInformation

연결할 피어를 나타내는 피어 정보 개체입니다.

반환 값

형식: IAsyncOperation<StreamSocket>

제공된 StreamSocket 개체를 사용하여 원격 피어에 연결하기 위한 비동기 작업입니다.

설명

FindAllPeersAsync 메서드에 대한 호출이나 ConnectionRequested 이벤트에 대한 처리기에서 피어에 대한 PeerInformation 개체의 인스턴스를 가져올 수 있습니다.

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

ConnectAsync 메서드를 호출하여 소켓 연결을 열 경우 컴퓨터에 대해 한번에 소켓 연결 한 개만 열 수 있습니다. 사용 중인 앱 또는 다른 앱에서 ConnectAsync 메서드를 호출할 경우 기존 소켓 연결이 닫힙니다.

중요   

근접 API는 인증, 암호화 또는 메시지 무결성을 제공하지 않습니다. 근접을 사용하여 암호, 재무 데이터, 텍스트 메시지, 전자 메일, 사진 또는 정부 ID 번호와 같은 중요 사용자 정보를 교환하지 마십시오.

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
FindAllPeersAsync
PeerInformation
ConnectionRequested
근접 연결 및 탭(JavaScript)
근접 연결 및 탭(C#/VB/C++)
샘플
근접 연결 샘플

 

 

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft