2017-04-13 9 views
0

ゴール:ノードモジュールazure-iot-hubを使用して、ブラウザからぼんやりしたiotハブデバイスを作成します(angular2)。ブラウザから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) ... 

潜在的な解決策: webcrypto からスイッチ暗号から紺碧-IOT-共通/ libに/ authorization.js

質問書き換える必要になります。

  1. を持っています誰でもノードモジュールazure-iot-hubを使用してブラウザからハブデバイスを作成しましたか?
  2. ブラウザから代替方法を使用してハブデバイスを作成した人はいますか?
  3. Q1,2に該当しない場合 - 私の潜在的な解決策は実現可能なようですか?
+0

AzureのポータルでIoTハブのデバイスを作成できます。 Azure IoT Hubダッシュボードに移動し、Device Explorerメニューを開きます。 – Sneezry

答えて

0

azure-iothubノードモジュールはサービスクライアントSDKで、デバイス用ではなくIoTハブインスタンスの管理に使用されるバックエンドアプリケーションを作成するためのものです。

デバイス側では、デバイスクライアントSDKモジュールazure-iot-deviceを使用する必要があります。 IoT HubサービスはCORSをサポートしていないため、Webクライアントからの要求を受け付けないことを意味するため、このようなさまざまな依存関係の問題を解決しても、これはまだ機能しません。 IoTハブのCORSサポートはバックログにありますが、優先順位付けはされていないため、ETAはありません。

この制限を回避するには、新しいWebブラウザクライアントがサイトに接続したときにデバイスクライアントの新しいインスタンスを作成して、Webクライアントのバックエンドでデバイスクライアントノードモジュールを実行します。

+0

Azure関数にロジックを配置する計画 – mrh042

0

ライブラリhttps://github.com/PeculiarVentures/webcrypto-linerはあなたがブラウザ(でもダウンレベル/ IE)で使用できる暗号化オブジェクトを提供しますhttps://github.com/PeculiarVentures/node-webcrypto-osslはあなたのノードのための1つを提供します。

webcryptoに切り替えても問題ありません。電話をかける方法の例については、https://github.com/diafygi/webcrypto-examples#hmacを参照してください。

+0

お返事ありがとうございます。 – mrh042

関連する問題