LingrCom
概要
- Webチャット"Lingr"のAPIをJavascriptから利用するためのライブラリです。
- lingrcom.jsと複数のcgiファイル(perlスクリプト)により構成されます。
- cgiをプロキシとして利用することで、www.lingr.comへのクロスドメイン通信を行います。
使い方の例
次の4文で、セッションを開始し、部屋へ入り、メッセージを監視します。メッセージを受信すると、observeの引数で渡したcallback関数が呼ばれます。
lingrobj = new LingrCom("lingrobj");
lingrobj.createSession();
lingrobj.enterRoom("roomid", "nickname");
lingrobj.observe(callback関数);
次の文で、部屋に対して発言をします。
lingrobj.say("発言する文字列");
LingrComを使ったサンプル
LingrComを使ったチャットです。→こちら
ダウンロード
lingrcom_v0051.zip (7KB)
利用前の設定
.htaccessファイルは、XREAの自動広告挿入の影響で、cgiで出力するContent-Typeが書き換えられてしまう問題を回避するためのものです。XREA以外ではたぶん不要です。
関数リファレンス
LingrCom(myname)
createSession()
- 機能: セッションを開始します(同期関数)。
- 引数: なし。
- 返り値: true(成功), false(失敗)
createSessionA(cb)
- 機能: createSession()の非同期版。
- 引数: コールバック関数。cbの第1引数にはcreateSession()の返り値と同じ真偽値が渡されます。
- 返り値: true(リクエスト成功), false(XMLHttpRequest生成失敗)
enterRoom(roomid, nickname)
- 機能: roomidで指定した部屋へ入室します(同期関数)。
- 引数1: (必須)入室する部屋のID。
- 引数2: (オプション)入室する際の自分のニックネーム。
省略した場合はanonymous observerとなり、発言する前に後述のsetNicknameでニックネームを設定する必要があります。
- 返り値: true(成功), false(失敗)
enterRoomA(roomid, nickname, cb)
- 機能: enterRoom()の非同期版。
- 引数1: (必須)入室する部屋のID。
- 引数2: (オプション)入室する際の自分のニックネーム。
省略した場合はanonymous observerとなり、発言する前に後述のsetNicknameでニックネームを設定する必要があります。
- 引数3: コールバック関数。cbの第1引数にはenterRoom()の返り値と同じ真偽値が渡されます。
- 返り値: true(リクエスト成功), false(XMLHttpRequest生成失敗)
setNickname(nickname)
- 機能: ニックネームを設定します(同期関数)。
- 引数: (必須)設定するニックネーム。
- 返り値: true(成功), false(失敗)
say(str, cb)
- 機能: 入室している部屋に対して発言を行います(非同期関数)。
- 引数1: (必須)発言する文字列。
- 引数2: (オプション)sayに対するコールバック関数。
cbの第1引数にはLingrAPIのMessageオブジェクトが渡されます。
nullの場合はsayの失敗を意味します。
- 返り値: true(リクエスト成功), false(XMLHttpRequest生成失敗)
observe(cb)
- 機能: 入室している部屋の監視を開始します(非同期関数)。
本関数はメッセージ受信後もobserveを自動で継続するため、最初に1度コールするだけでOKです。
メッセージを受信する度にコールバック関数cbが呼び出されます。
- 引数: (必須)メッセージを受信した際のコールバック関数。
cbの第1引数にはLingrAPIのMessageオブジェクトの配列が渡されます。
nullの場合はobserveの失敗を意味し、observeの継続は中止されます。
cbの第2引数には、入室している部屋での自分のoccupant_idが渡されます(自分のメッセージを選別する用途に使います)。
- 返り値: なし。
getMessages(num, cb)
- 機能: 指定カウンターから現在までのメッセージを受信します(非同期関数)。
- 引数1: (必須)受信する最初のメッセージのカウンター値。負の値を指定した場合は、現在から遡って受信するメッセージの個数を意味します。
- 引数2: (必須)メッセージを受信した際のコールバック関数。
cbの第1引数にはLingrAPIのMessageオブジェクトの配列が渡されます。
cbの第2引数には、入室している部屋での自分のoccupant_idが渡されます(自分のメッセージを選別する用途に使います)。
cbの第3引数には、getMessageの結果が、true(成功), false(失敗)で渡されます。
- 返り値: true(リクエスト成功), false(XMLHttpRequest生成失敗)
setOcupantsChangeCallback(cb)
- 機能: チャット参加者が変化した際にコールバックされる関数を設定します。
- 引数: (必須)チャット参加者が変化した際のコールバック関数。
cbの第1引数にはLingrAPIのOccupantオブジェクトの配列が渡されます。
cbの第2引数には、入室している部屋での自分のoccupant_idが渡されます(自分のメッセージを選別する用途に使います)。
- 返り値: なし。
leaveRoom()
- 機能: 部屋を退室します(非同期関数)。
- 引数: なし。
- 返り値: true(成功), false(失敗)
destroySession()
- 機能: セッションを破棄します(非同期関数)。入室している場合は自動的に退室します。
- 引数: なし。
- 返り値: true(リクエスト成功), false(XMLHttpRequest生成失敗)
コメント、バグ報告等
コメント、バグ報告等は、日記のコメント欄へお願いします。
更新履歴
- 2007/05/05 ver. 0.01
- 2007/05/06 ver. 0.02 IEでのバグ修正
- 2007/05/09 ver. 0.03 leaveRoomへ返り値を追加、observe,getMessages,setOcupantsChangeCallbackのcbの第2引数を追加。
- 2007/05/12 ver. 0.04 sayでPOSTするメッセージをエンコードしていなかったバグ修正。
- 2007/05/14 ver. 0.05 createSessionとenterRoomの非同期版を作成。返り値の整理。
- 2008/01/20 ver. 0.051 Operaで正常に動作するよう修正