LingrChatPanel みたいなものを作成してみていたり
ASP.NET 用のパネルで、貼り付けるだけで WebPage に Lingr のチャットルームを挿入できる、というもの。
すでに何人もの人が同じことを言っているけど、Lingr API は REST API でサーバの状態を変更するものは POST メソッドを使用される。これがブラウザ上でなんらかの動作をさせるときに、結構ネックになりやすい。
しかし、完全にブラウザで完結せず、CGI*1 を利用してある程度の回避は可能である。
- サーバ側で session.create, room.enter などを実施して ticket を生成
- 上記の ticket と counter をパラメータとして script を含めたレスポンスをブラウザに返す
- ブラウザ上で room.observe を JSONP 形式で要求し、受信部を作成する
- 発言操作があった場合、自サイトの発言用のサービスに対して XHR で要求を投げる
- XHR で要求をうけたら Web サーバ側から Lingr へ POST を要求する
このような手順であれば、APIKEY をブラウザへ渡す必要もないので、JavaScript ですべてを解決しようとした場合の APIKEY の漏洩に対する対策にもなる。
上では、XHR を使うとかいた(ASP.NET では ClientCallback を利用しているため)が、別にページ全体が読み込まれていいなら、発言処理はごく普通の FORM を使用して、自サイトへ POST すれば十分なのである。Comet 技術で一番旨いところは受信部なんだから。