チュートリアル続編

チュートリアル続編

チャットルームを監視する

ルーム内でイベントが発生したら通知して欲しいですよね。イベントとは誰かが発言したとか、入退室したとか、そういうのです。

ルーム内でのイベントを監視するには次のようなroom.observeメソッドを使用します。

URL        : http://www.lingr.com/api/room/observe
Method     : GET
Parameters : session=9876543210&ticket=my-room-ticket&counter=24

この呼び出しは何らかのイベントが発生するか、最大監視待機時間が過ぎるまでブロックされます。

この呼び出しはブロックしますので、監視するのは別スレッドに分離したいと思うかもしれませんが、細部はお任せします。

また、呼び出しが最大監視待機時間までブロックされることになるので、それに応じてソケットタイムアウト設定することが重要であり、そうすることでクライアントが早まってソケットを閉じてしまうことはありません。

戻り値にはこれらの項目が含まれます。

自分が発言した場合にも監視スレッドは通知を行うことに注意してください。これは、私たちの発言もルームのイベントとなるからです。

応答が為されてHTTPコネクションが閉じたら、room.observeを再発行してください。この監視ループがLingr APIの実装の鍵です。

room.observeメソッドが呼び出されたときの接続ステータスを知る手助けにもなって、バックエンドにて生きていると確かめられます。もしもroom.observeroom.getMessagesメソッドが2分以上行われなかった場合、あなたのチケットは無効となり参加者リストから消えます。それが最大監視待機時間が120秒以上にはならない理由です。