导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

TriggeredConnectionStateChangedEventArgs.Socket | socket Property

获取连接的 StreamSocket 实例。

语法


var socket = triggeredConnectionStateChangedEventArgs.socket;

属性值

类型: StreamSocket

连接的 StreamSocket 实例。

备注

Socket 属性为 null,直至成功地完成连接。连接成功完成时,State 等于 Completed

示例


function id(elementId) {
    return document.getElementById(elementId);
}

// Click event for "Start" button.
function startFindingPeers() {
    if (Windows.Networking.Proximity.PeerFinder.supportedDiscoveryTypes &
        Windows.Networking.Proximity.PeerDiscoveryTypes.triggered) {

        Windows.Networking.Proximity.PeerFinder.start();

        Windows.Networking.Proximity.PeerFinder.addEventListener(
    "triggeredconnectionstatechanged", triggeredConnectionStateChanged);

        id("messageDiv").innerHTML += 
    "Waiting for peers. Enter proximity to connect. " +
    "Call PeerFinder.start() on the peer to send and receive messages.<br />";
    }
    else {
        id("messageDiv").innerHTML += 
    "Peer discovery using tapping is not supported.<br />";
    }

}

function triggeredConnectionStateChanged(e) {
    if (e.state === Windows.Networking.Proximity.TriggeredConnectState.completed) {
        id("messageDiv").innerHTML += "Connected. You may now send a message.<br />";
        sendMessage(e.socket);
    }
}

var proximitySocket;
var dataWriter;

// Reference socket streams for writing and reading messages.
function sendMessage(socket) {
    id("sendMessageButton").addEventListener("click", sendMessageText);

    // Get the network socket from the proximity connection.
    proximitySocket = socket;

    // Create DataWriter for writing messages to peers.
    dataWriter = new Windows.Storage.Streams.DataWriter(proximitySocket.outputStream);
            
    // Listen for messages from peers.
    var dataReader = new Windows.Storage.Streams.DataReader(proximitySocket.inputStream);
    startReader(proximitySocket, dataReader);
}

// Send a message to the socket.
function sendMessageText() {        
    var msg = id("sendMessageText").value;
    
    if (msg.length > 0) {
        var msgLength = dataWriter.measureString(msg);
        dataWriter.writeInt32(msgLength);
        dataWriter.writeString(msg);
        dataWriter.storeAsync().done(
            function (byteCount) {
                id("messageDiv").innerHTML += "Message sent: " + msg.value + "<br />";
            },
            function (err) {
                id("messageDiv").innerHTML += "Send error: " + err.message + "<br />";
            });
    }
}

// Read out and print the message received from the socket.
function startReader(socket, reader) {
    var initialLength = 4; 
    reader.loadAsync(initialLength).done(
    function () {
        var msgLength = reader.readInt32();
        reader.loadAsync(msgLength).done(
            function () {
                var message = reader.readString(msgLength);
                id("messageDiv").innerHTML += "Received message: " + message + "<br />";

                // After receiving a message, listen for the next message.
                startReader(socket, reader);
            },
            function (err) {
                id("messageDiv").innerHTML += "Error: " + err.message + "<br />";
                socket.close();
            });
    },
    function (err) {
        id("messageDiv").innerHTML += "Error: " + err.message + "<br />";
        socket.close();
    });
}


要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8

命名空间

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

元数据

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]

另请参见

TriggeredConnectionStateChanged
TriggeredConnectionStateChangedEventArgs
接近程度和轻击 (JavaScript)
接近程度和轻击 (C#/VB/C++)
示例
接近程度示例

 

 

显示:
© 2015 Microsoft