// JSX
var base64 = Base64.btoa(xhr.responseText, true);// JSX
import "js.jsx";
import "js/web.jsx";// JSX
var base64 = Base64.btoa(xhr.responseText, true);// JSX
import "js.jsx";
import "js/web.jsx";// JSX
var obj = null:Map.<variant>;
obj = Mixin.mixin({}:Map.<variant>, { a: 123 }:Map.<variant>);// JSXLEAP Motion はデフォルトの状態で、WebSocketのサーバが起動しポート 6437 で listen しています。
適当なクライアントから接続するだけで、情報を取得することができます。
ws://localhost:6437/ に接続します。たったこれだけで、3D空間上の指の配置と手のひらの情報が取得できます。
| var connected = false; // Boolean: { false: disconnected, true: connected } | |
| var gestureState = 0; // Number: { 0: none, 1: start, 2: progress } | |
| var leap = null; // Leap.Controller instance | |
| chrome.browserAction.onClicked.addListener(function() { | |
| connected = !connected; // toggle state | |
| if (connected) { | |
| //Leap.loop({ enableGestures: true }, onframe); | |
| leap = new Leap.Controller({ |
bench result
function A(obj, i) {
var rv = Array.apply(null, obj);
rv.push(i);
}http://www.html5rocks.com/ja/tutorials/casestudies/world_wide_maze/ によると、
普通の OS では、TCP レベルでバッファリングすることで、効率良く通信するための Nagle アルゴリズム という仕組みがが実装されているのですが、このアルゴリズムが有効なままだとリアルタイムにデータを送信することができないという現象がありました。(正確にはこれに加えて TCP 遅延 ACK が組み合わさった場合。遅延 ACK でなくても、サーバーが海外にあったりして ACK がある一定レベル遅れる場合には同様の問題が発生します。)
Chrome for Android の WebSocket 実装では Nagle を無効にするための TCP_NODELAY オプションが付いているので、Nagle 遅延問題は発生しませんでしたが、Chrome for iOS につかわれている WebKit の WebSocket 実装には、このオプションが指定されておらず、遅延問題が発生します。同じ WebKit を使っている Safari も同様。この問題は Google を通して Apple に報告され、開発バージョンの WebKit ではすでに修正されている とのこと。
実際、この問題が発生すると、100ms ごとに送信している傾きデータが、500ms ごとにまとめて PC 側に届きます。これではゲームとして成立しないので、サーバーサイドから短い間隔(50msぐらい)でデータを送り続けることで遅延を回避しています。これはおそらく ACK が短い間隔で届くために、Nagle アルゴリズム的に送信可能な状態になるからだと考えています。
との事です。
The typical module pattern の「AMD をサポートしない理由」をこちらに移動しました。