LingrChatPanel みたいなものを作成してみていたり

ASP.NET 用のパネルで、貼り付けるだけで WebPage に Lingr のチャットルームを挿入できる、というもの。
すでに何人もの人が同じことを言っているけど、Lingr APIREST API でサーバの状態を変更するものは POST メソッドを使用される。これがブラウザ上でなんらかの動作をさせるときに、結構ネックになりやすい。
しかし、完全にブラウザで完結せず、CGI*1 を利用してある程度の回避は可能である。

  1. サーバ側で session.create, room.enter などを実施して ticket を生成
  2. 上記の ticket と counter をパラメータとして script を含めたレスポンスをブラウザに返す
  3. ブラウザ上で room.observe を JSONP 形式で要求し、受信部を作成する
  4. 発言操作があった場合、自サイトの発言用のサービスに対して XHR で要求を投げる
  5. XHR で要求をうけたら Web サーバ側から Lingr へ POST を要求する

このような手順であれば、APIKEY をブラウザへ渡す必要もないので、JavaScript ですべてを解決しようとした場合の APIKEY の漏洩に対する対策にもなる。
上では、XHR を使うとかいた(ASP.NET では ClientCallback を利用しているため)が、別にページ全体が読み込まれていいなら、発言処理はごく普通の FORM を使用して、自サイトへ POST すれば十分なのである。Comet 技術で一番旨いところは受信部なんだから。

*1:ここでいう CGI は、gateway interface を使って Web Server 側と Web Browser が通信すること