2017-10-03 5 views
0

私はMQTTサーバーをthisのように開始しました。 このコードはASP.Net Core 2.0アプリケーションでホストされていますが、運がないコンソールアプリケーションを試しました。MQTT.jsクライアントでMQTTNetサーバーを使用

私は上記と同じデモを使用してクライアントをセットアップしており、完全に接続しています。また、Androidクライアントは正常に接続します。しかし、私はMQTT.jsクライアントWebページを配置しましたが、net::ERR_CONNECTION_REFUSEDエラーを示すクロムと接続しません。

私はこの問題はサーバーがWebソケットをサポートしていないと考えています。 WSタイプでクライアントを起動すると接続されないためです。

var options = new MqttClientOptions 
{ 
    Server = "localhost", 
    //ConnectionType = MqttConnectionType.Tcp // Connects 
    ConnectionType = MqttConnectionType.Ws // Does not connect 
}; 

今MQTT.jsは限りthis linkが語っているTCPをサポートしています。しかし、私はそれを動作させることができないようです。

これは私のページのjavascriptのコード:

var client = mqtt.connect('tcp://localhost') //Also did mqtt://localhost 

client.on('connect', function() { 
    client.subscribe('myTopic') 
    client.publish('myTopic', 'Hello mqtt') 
}) 

client.on('message', function (topic, message) { 
    // message is Buffer 
    console.log(message.toString()) 
    client.end() 
}) 

私はjavascriptのMQTTクライアントは、TCPを使用するように作ることができる方法を知りたいですか? (その他のjsプラグインは多分?)あるいは、MQTTNetでWebSocketを有効にするにはどうすればいいですか? ご協力いただきありがとうございます。

答えて

1

MQTT.jsはWebソケット上のネイティブMQTTとMQTTの両方をサポートしますが、Webアプリケーションに組み込む場合、ブラウザサンドボックスは任意のTCP接続を使用できないため、Webソケット上でのみMQTTを使用できます。

ブローカ内のWebソケットを有効にするために、私はコード内に何も明白ではありませんので、詳細を尋ねるためにgithubプロジェクトに対して提起し問題を提起する必要があります。

+0

お返事ありがとうございます。それを少しだけクリアするには、ブラウザーが許可していないので、jsが純粋なtcp呼び出しを呼び出すことはできないと言っていますか? – Emad

+1

はい、ブラウザからのHTTPまたはWebソケットのみを使用できます。 MQTT.jsは、NodeJSで使用する場合にのみネイティブMQTTを使用できます – hardillb

+0

.NetのWebソケットをサポートするブローカー・ライブラリーを知っていますか? – Emad

0

次のバージョンのMQTTnet(2.5)は、AspNetCore 2.0経由でサーバー用のWebSocket接続をサポートします。

関連する問題