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

ProximityDevice.PublishBinaryMessage(String, IBuffer) | publishBinaryMessage(String, IBuffer) Method

이진 데이터를 포함하는 메시지를 지정된 메시지 유형의 구독자에게 게시합니다.

구문


var number = proximityDevice.publishBinaryMessage(messageType, message);

매개 변수

messageType

형식: String [JavaScript] | System.String [.NET] | Platform::String [C++]

구독자에게 배달할 메시지의 형식입니다.

message

형식: IBuffer

구독자에게 배달할 이진 메시지 데이터입니다.

반환 값

형식: Number [JavaScript] | System.Int64 [.NET] | int64 [C++]

게시된 메시지의 고유한 게시 ID입니다.

설명

동일한 메시지 형식의 여러 메시지를 게시할 수 있으며 각 게시물에 연결된 고유 ID가 있습니다.

PublishBinaryMessage 메서드에서 반환되는 게시 ID를 StopPublishingMessage 메서드에 전달하여 메시지 게시 작업을 중지할 수 있습니다.

메시지는 StopPublishingMessage 메서드가 호출되거나 ProximityDevice가 해제될 때까지 계속 게시됩니다.

SubscribeForMessage 메서드를 사용하여 게시된 메시지를 구독할 수 있습니다.

PublishMessage 메서드를 사용하여 근접 컴퓨터에 텍스트 메시지를 게시할 수 있습니다. PublishUriMessage 메서드를 사용하여 근접 컴퓨터에 URI(Uniform Resource Identifier)를 게시할 수 있습니다.

중요   

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

메시지 형식

messageType 매개 변수를 사용하여 게시된 메시지를 고유하게 식별하고 메시지의 의미와 사용할 대상 구독자를 정의하는 식별자를 제공할 수 있습니다.

메시지 형식 값은 두 부분(프로토콜하위 형식)으로 구성된 대/소문자 구분 문자열입니다. 프로토콜이 먼저 오고 점(.)이 온 다음 하위 형식이 옵니다. 하위 형식은 영숫자 문자 및 RFC 3986에서 정의된 유효한 URI 문자(- . _~ : / ? # [ ] @ ! $ & ‘ ( ) * + , ; = %)로 구성된 문자열입니다. 하위 형식은 250자를 초과할 수 없습니다. 다음 표는 메시지 형식의 프로토콜 부분에 지원되는 값을 보여 줍니다.

Windows

이 메시지에는 이진 데이터가 포함되어 있습니다.

WindowsUri

메시지 데이터에는 URI인 UTF-16LE로 인코딩된 문자열이 포함되어 있습니다.

Windows는 기본 웹 브라우저에서 열려 있는 http:// URI와 같은 특정 URI 프로토콜을 처리하는 Windows 기본 앱에서 받은 URI를 보도록 사용자에게 메시지를 표시하여 항상 "WindowsUri" 메시지를 처리합니다. 다른 앱이 "WindowsUri"를 구독하는 경우에도 Windows는 기본 앱에서 URI를 엽니다.

이 프로토콜로 PublishBinaryMessage 메서드를 호출하는 대신 PublishUriMessage 메서드를 사용합니다.

Uri를 Windows가 실행되지 않는 컴퓨터에 게시할 경우 Uri는 컴퓨터에서 지원하는 근접 기술에 따라 자동으로 서식이 지정됩니다. 예를 들어 컴퓨터가 근접 장치로 NFC 하드웨어를 사용하는 경우 Uri는 NDEF URI 레코드 서식으로 지정됩니다.

"WindowsUri" 메시지를 구독하고 Windows 컴퓨터에서 해당 컴퓨터에서 지원하는 근접 기술로 서식이 지정된 메시지를 받을 경우 Windows는 서식이 지정된 메시지를 읽고 메시지 내용으로 Uri만 반환합니다.

WindowsMime

메시지 데이터는 특정 MIME 형식입니다. 예를 들어 메시지 데이터가 jpeg 이미지인 경우 메시지 형식은 "WindowsMime.image/jpeg"입니다.

Windows는 앱이 MIME 콘텐츠용으로 구독되는 경우에도 받은 MIME 콘텐츠를 보도록 사용자에게 메시지를 표시하여 항상 "WindowsMime" 메시지를 처리합니다.

"WindowsMime" 메시지를 Windows가 실행되지 않고 있는 컴퓨터에 게시할 경우 메시지 내용은 컴퓨터에서 지원하는 근접 기술에 따라 자동으로 서식이 지정됩니다. 예를 들어 컴퓨터가 근접 장치로 NFC 하드웨어를 사용하는 경우 메시지 콘텐츠는 NDEF Mime 레코드 서식으로 지정됩니다.

"WindowsMime" 메시지를 게시할 경우 mime 형식을 항상 포함해야 합니다. "WindowsMime" 메시지를 구독할 경우 모든 mime 형식에 대해 구독할 mime 형식을 지정하지 않고 "WindowsMime"을 사용할 수 있습니다. 특정 mime 형식을 구독하고 Windows 컴퓨터에서 해당 컴퓨터에서 지원하는 근접 기술로 서식이 지정된 메시지를 받을 경우 Windows는 서식이 지정된 메시지를 읽고 메시지 내용으로 mime 콘텐츠만 반환합니다. 모든 mime 형식을 구독할 경우 받은 데이터 중 처음 256바이트는 ASCII mime 형식 문자열이고 남아 있는 바이트는 mime 콘텐츠입니다.

Windows:WriteTag

이는 콘텐츠가 정적 태그에 쓰여지는 경우를 제외하고 Windows 프로토콜과 동일합니다. 메시지는 쓸 수 있는 정적 태그를 제외하고는 장치에 전송되지 않습니다. 이 프로토콜은 게시에 대해서만 유효합니다. 이 프로토콜의 예를 들면 "Windows:WriteTag.SampleSubtype"이 있습니다.

WindowsUri:WriteTag

이는 콘텐츠가 정적 태그에 쓰여지는 경우를 제외하고 WindowsUri 프로토콜과 동일합니다. 메시지는 쓸 수 있는 정적 태그를 제외하고는 장치에 전송되지 않습니다. 이 프로토콜은 게시에 대해서만 유효합니다.

WindowsMime:WriteTag

이는 콘텐츠가 정적 태그에 쓰여지는 경우를 제외하고 WindowsMime 프로토콜과 동일합니다. 메시지는 쓸 수 있는 정적 태그를 제외하고는 장치에 전송되지 않습니다. 이 프로토콜은 게시에 대해서만 유효합니다. 이 프로토콜의 예를 들면 "WindowsMime:WriteTag.image/jpeg"가 있습니다.

LaunchApp:WriteTag

선택적 시작 매개 변수를 사용하여 특정 앱을 시작하는 데 사용할 수 있는 태그를 작성 합니다. LaunchApp:WriteTag 메시지를 태그에 게시할 경우 해당 태그를 컴퓨터에 탭한 결과는 PeerFinder.Start 메서드를 호출하여 시작 매개 변수를 전달한 것과 같습니다. 메서지는 값이 다음 형식으로 탭 문자 또는 null 값으로 구분되는 UTF-16LE 인코딩된 문자열이어야 합니다.

<launch arguments>[tab]<app platform 1>[tab]<app name 1>...[tab]<app platform N>[tab]<app name N>

하나 이상의 앱 플랫폼 및 앱 이름을 지정해야 합니다. Windows 8 컴퓨터용 앱 플랫폼은 Windows입니다. 근접 앱 ID의 형식은 <package family name>!<app Id>입니다. Windows.ApplicationModel.Package.Current.Id.FamilyName 속성에서 패키지 패밀리 이름을 가져올 수 있습니다. 앱에 대한 패키지 매니페스트에 있는 Application 요소의 Id 특성에서 앱 ID 값을 복사해야 합니다. 이 메시지의 예를 들면 "user=default\tWindows\tExample.Proximity.JS_8wekyb3d8bbwe!Proximity.App"이 있습니다.

다른 앱 플랫폼을 지원할 수도 있습니다. 자세한 내용은 AlternateIdentities를 참조하십시오.

WriteableTag

이 메시지 프로토콜을 구독할 때 쓰기 가능한 태그를 근접으로 가져오는 경우 태그의 최대 쓰기 가능한 크기를 나타내는 int32(little endian)를 포함하는 근접 메시지를 받습니다. 이 프로토콜은 구독에 대해서만 유효합니다.

Pairing:Bluetooth

Windows는 이 메시지 형식을 구독하여 근접을 통해 Bluetooth 쌍을 완료합니다. 이 프로토콜은 앱에서 사용해서는 안 됩니다.

NDEF

메시지 내용은 올바른 형식의 NDEF 레코드입니다. NDEF를 메시지 형식으로 사용하는 게시에 대한 기본 콘텐츠 형식이 NDEF 레코드에 포함되어 있습니다. NDEF 형식에 대한 구독은 모든 NDEF 포맷의 메시지를 구독합니다.

NDEF:ext

메시지 데이터는 응용 프로그램 정의 NDEF 레코드입니다(TNF 필드 값 0x04). 이 프로토콜은 구독에만 적용되며 NDEF 콘텐츠를 게시할 때는 NDEF를 사용하십시오.

NDEF:MIME

메시지 데이터는 적절한 형식의 NDEF MIME 메시지입니다(TNF 필드 값 0x02). 예를 들면 "NDEF:MIME.image/jpeg"입니다. 이 프로토콜은 구독에만 적용되며 NDEF 콘텐츠를 게시할 때는 NDEF를 사용하십시오.

NDEF:URI

메시지 데이터는 URI 네임스페이스에서 정의된 적절한 형식의 NDEF 메시지입니다(TNF 필드 값 0x03). 이 프로토콜은 구독에만 적용되며 NDEF 콘텐츠를 게시할 때 NDEF를 사용합니다. 즉, 데이터 형식이 지정된 URI로 식별됩니다. 이 프로토콜의 예를 들면 "NDEF:URI.http://contoso.com/sometype"이 있습니다.

NDEF:wkt

메시지 데이터는 NFC 포럼에서 정의된 적절한 형식의 NDEF 메시지입니다(TNF 필드 값 0x01). 이런 형식의 예는 URI의 잘 알려진 형식인 "NDEF:wkt.U"입니다. 이 프로토콜은 구독에만 적용되며 NDEF 콘텐츠를 게시할 때는 NDEF를 사용하십시오.

NDEF:WriteTag

메시지 데이터는 NFC 포럼 표준 정적 태그에 기록되어야 합니다. 메시지 데이터는 적절한 NDEF 형식이어야 합니다. 이 프로토콜은 게시에 대해서만 유효합니다.

NDEF:Unknown

메시지 데이터는 형식화되지 않은 NDEF 메시지입니다(TNF 필드 값 0x05). 이 프로토콜은 구독에만 적용되며 NDEF 콘텐츠를 게시할 때 NDEF를 사용합니다.

예제


 var proximityDevice;

    function publishLaunchApp() {
 proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault();

    if (proximityDevice) {
     // The format of the app launch string is: "<args>\tWindows\t<AppName>".
     // The string is tab or null delimited.

     // The <args> string can be an empty string ("").
     var launchArgs = "user=default";

     // The format of the AppName is: PackageFamilyName!PRAID.
     var praid = "MyAppId"; // The Application Id value from your package.appxmanifest.

     var appName = Windows.ApplicationModel.Package.current.id.familyName + "!" + praid;

     var launchAppMessage = launchArgs + "\tWindows\t" + appName;

     var dataWriter = new Windows.Storage.Streams.DataWriter();
     dataWriter.unicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.utf16LE;
     dataWriter.writeString(launchAppMessage);
     var launchAppPubId =
          proximityDevice.publishBinaryMessage(
              "LaunchApp:WriteTag", 
              dataWriter.detachBuffer());
 }
    }


요구 사항

지원되는 최소 클라이언트

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]

참고 항목

ProximityDevice
PublishBinaryMessage(String, IBuffer, MessageTransmittedHandler)
근접 연결 및 탭(JavaScript)
근접 연결 및 탭(C#/VB/C++)
샘플
근접 연결 샘플

 

 

표시: