Pebble 加速度計のデータを自分のコンピューターに記録しようとしています。PebbleKit JS を使用して時計自体と通信し、Websocket を使用してそのデータをコンピューターに送信することを望んでいましたが、現在、Websocket は 1 つのメッセージしか送信せず、iOS アプリがクラッシュします。
pebble-js-app.js の内容は次のとおりです。
var ws = new WebSocket('ws://192.168.1.134:8888');
// Called when JS is ready
Pebble.addEventListener("ready",
function(e) {
console.log("js initialized");
}
);
// Called when incoming message from the Pebble is received
Pebble.addEventListener("appmessage",
function(e) {
console.log(ws.readyState);
if (ws.readyState === 1) {
ws.send('this gets sent');
ws.send(e.payload.message);
}
console.log("acc data: " + e.payload.message);
}
);
アプリを実行したときに取得するログは次のとおりです。
[INFO ] Enabling application logging...
[INFO ] Displaying logs ... Ctrl-C to interrupt.
[INFO ] JS: starting app: 4C74DC80-A54E-4D0B-9BAB-FD355D364334 accelero
[INFO ] app is ready: 1
[INFO ] JS: accelerometer: js initialized
[INFO ] JS: accelerometer: 0
[INFO ] JS: accelerometer: acc data: 3131
[INFO ] JS: accelerometer: 1
[ERROR ] Lost connection to Pebble
私のコンピューターで実行されている websocket サーバーは、javascript から送信された最初のメッセージをログに記録します。順序が変更された場合でも、メッセージは 1 つだけ送信されます (たとえばthis gets sent
、加速度計からの実際の読み取り値または 1 つを出力します)。興味深いことに、WebSocket が何らかの有効なデータを送信した場合でも、javascript からの組み込みのログ ( )は、受信したデータのconsole.log
印刷のみを開始しました。3131
コードにエラーが見られますか、それとも他に何か提案はありますか?