2017-04-13 8 views
0

목표 : 노드 모듈 azure-iot-hub을 사용하여 브라우저 (angular2)에서 하늘색 iot 허브 장치를 만듭니다.브라우저에서 IoT 허브 장치를 만들 수 있습니까?

문제 : 브라우저에서 작동하지 않습니다 패키지, 암호화에 따라 달라 푸른-공통 IOT.

단계 다시 : 크롬 도구 콘솔에서

import { Component, OnInit } from '@angular/core'; 
let iothub = require(‘azure-iothub’); 

const connectionString = ‘HostName=<my-host>.azure-devices.net;SharedAccessKeyName=<my-key-name>;SharedAccessKey=<my-key>=’; 

@Component({ 
    selector: 'acn-shop', 
    template: ` 
<div class="al-main"> 
    <div class="al-content container-fluid"> 
    <h1>Azure IoT Hub Devices</h1> 
    </div> 
</div>` 
}) 
export class ShopComponent implements OnInit { 

    constructor() { 
    } 

    public ngOnInit() { 
    this.connect(); 
    } 

    public connect() { 
    console.log('Calling connect()'); 
    const registry = iothub.Registry.fromConnectionString(connectionString); 
    } 
} 

Error: Uncaught (in promise): TypeError: crypto.createHmac is not a function 
TypeError: crypto.createHmac is not a function 
    at Object.hmacHash (authorization.js:36) 
    at Function.create (shared_access_signature.js:67) 
    at Object.create (shared_access_signature.js:15) 
    at Function.fromConnectionString (registry.js:65) 
    at ShopComponent.Array.concat.ShopComponent.connect (shop.component.ts:32) 
    … (goes on for a bit) ... 

잠재적 인 솔루션 : - :

  1. 가 가지고 스위치 webcrypto -암호화푸른--IOT 일반/lib 디렉토리/authorization.js

    질문 재 작성 필요 누구든지 노드 모듈 azure-iot-hub을 사용하여 브라우저에서 허브 장치를 만들었습니까?

  2. 누군가 다른 방법으로 브라우저에서 허브 장치를 만들었습니까?
  3. Q1,2에 없다면 - 내 잠재적 인 해결책이 실현 가능합니까?
+0

이제 Azure 포털에서 IoT 허브 용 장치를 만들 수 있습니다. Azure IoT 허브 대시 보드로 이동하여 장치 탐색기 메뉴를 엽니 다. – Sneezry

답변

0

azure-iothub 노드 모듈은 서비스 클라이언트 SDK입니다. 클라이언트 SDK는 장치가 아닌 IoT 허브 인스턴스를 관리하는 데 사용되는 백 엔드 응용 프로그램을 만들기위한 것입니다.

장치 측에서 사물 클라이언트 SDK 모듈 azure-iot-device을 사용해야합니다. IoT 허브 서비스가 CORS를 지원하지 않으므로 발견 한 Crypto와 같은 다양한 종속성 문제를 해결하더라도 웹 클라이언트에서 들어오는 요청을 수락하지 않는다는 것을 의미합니다. IoT 허브에 대한 CORS 지원은 백 로그에 있지만 우선 순위가 정해지지 않았으므로 ETA가 없습니다.

이 제한 사항을 해결하기 위해 시도 할 수있는 방법은 웹 브라우저의 백엔드에서 장치 클라이언트 노드 모듈을 실행하여 새 웹 브라우저 클라이언트가 사이트에 연결할 때 장치 클라이언트의 새 인스턴스를 만드는 것입니다.

+0

Azure 함수에 논리 배치 계획 – mrh042

0

라이브러리 https://github.com/PeculiarVentures/webcrypto-liner 당신에게 암호화 브라우저 (심지어 하위/IE)에서 사용할 수있는 객체 https://github.com/PeculiarVentures/node-webcrypto-ossl 당신에게 노드 하나를 줄 것이다 줄 것이다.

전화 걸기의 예는 https://github.com/diafygi/webcrypto-examples#hmac을 참조하십시오. webcrypto로 전환해도 문제가 없습니다.

+0

답변 해 주셔서 감사합니다. – mrh042