WebService.Lingr

ちょっと必要になったのでちまちま作り中。こんなSYNOPSISで。

var lingr = new WebService.Lingr();

lingr.addEventListener('session.create', function(event) {
    lingr.call('room.enter', {id:'ROOM_ID', nickname: 'WebService.Lingr'});
});

lingr.addEventListener('room.enter', function(event) {
    lingr.call('room.getMessages', {counter: -10});
});

lingr.addEventListener('room.getMessages', function(event) {
    // var messages = event.data.messages;
    // document.getElementById('template').parentNode.innerHTML = TrimPath.processDOMTemplate('template', {"stash": event.data});
    lingr.call('room.say', {message: 'testing WebService.Lingr'});
});

lingr.call('session.create', {'api_key':'YOUR_API_KEY'});
  • コールバック関数を渡すようにしてたらクロージャの階段ができてしまったので、dispatchEventでやることにしました。
  • 通信にはXMLHttpRequest使っていてクロスドメイン対応にはCatalystにプロキシ立てて使ってます。Catalyst::Action::DeleGateDeleGateみたいな。セキュリティ的にどうかと思うし、observeした時に大変そうなのでやめたいんだけどPOSTメソッドの時はそのままに、GETメソッドの時だけJSONPにすればいいか通信部分はあとでHTTP.Requestとかと交換可能にしたいです。Wassrみたいに/crossdomain.xmlがあったらFlashのProxyが使えるんだけどなあ。
中の人に教えて頂きました!http://www.lingr.com/api/crossdomain.xmlにあるそうです!
flash.system.Security.loadPolicyFile("http://www.lingr.com/api/crossdomain.xml");
でおk!!さーて、flash proxy作ろうっと。

flash proxy作った! → Flashを使った半クロスドメインのXMLHttpRequestのようなもの - ヒルズで働く@robarioの技ログ