2017-03-04 8 views
0

私のサーバ上にnode websocket wsモジュールを使用しています。サーバから私の組み込みデバイス(Arduino/GPRSモジュールSIM808)にコマンドを送信したいと思います。 HTTPも使用していますが、デバイスがリクエストを送信するための接続を確立するたびにかなり時間がかかります。ウェブブラウザを使わずにウェブソケットを介して話すことは可能ですか?

webSocket wsサーバとの接続を確立するには、以下のクライアント側をarduinoで実行する必要があります。しかし私の組み込み機器では私はブラウザを持っておらず、ATコマンドをソケットに送るしかありません。

var ws = new WebSocket('ws://'+location.host); 

ws.onopen = function open() { 
    // ws.send('something from client'); 
}; 

ws.onmessage = function incoming(data, flags) { 
    console.log(data, flags); 
    // flags.binary will be set if a binary data is received. 
    // flags.masked will be set if the data was masked. 
}; 

function sendMessage(input) { 
    ws.send('From Client:' +input); 
} 

私は、Webブラウザを使用せずにウェブソケットサーバーに話すことができるか、私の組込み機器とウェブサーバを介してソケット通信を確立することができます方法はありますか?

+0

私は、クライアントとサーバーの何だろうがどうなるかについて困惑しています。クライアントはサーバーに接続します。 arduinoはどの役割を果たしますか(クライアントまたはサーバー)?ブラウザーはクライアントにしかなり得ません。サーバーにすることはできません。 – jfriend00

+0

また、webSocketは通常のソケットと同じではありません。したがって、通常のソケットを介してarduinoにATコマンドを送信することを期待している場合は、webSocket接続で直接行うことはできません。これを行うには、通常のTCP接続が必要です。しかし、arduinoにwebSocketサーバを置くとブラウザがそれに接続でき、arduinoのwebSocketサーバがwebSocketの着信メッセージに応答してATコマンドを送ることができます。 – jfriend00

+0

@ jfriend00ご意見ありがとうございます、私はクライアントとしてarduinoを使用し、私はHerokuにwebSocketサーバーコードを配備しました。サーバーは正常に動作していますが、arduinoボードにwebSocketサーバーのホスト名とポート番号'AT + CIPSTART =" TCP "、'シリアルモニタから、それは 'TCP CLOSED'で応答します。これは、そのアドレスで何も検出されないことを意味します。 – developer

答えて

関連する問題