** Ajax でチャットを作ってみた [#m2bbad77] #keyword() RIGHT:&tag(プログラミング); #block(around,right,w:50%){{ ****動作例 [#k494c56b] サンプルチャットです。ご自由にお試しください。 :D #chat }} JavaScript(Ajax) でチャットのプログラムを組み立ててみました。 きっかけは、[[yosha_01さんのディスカス:http://www.x-groupware.org/x/xoops/modules/discuss/]]~ です。~ はじめは、このディスカスをいじってみようと思ったのですが、汎用的なものを作ってみたかったので、[[最速インターフェース研究会-Ajaxを使ったシンプルなチャット:http://la.ma.la/blog/diary_200507290022.htm]]を元にごにょごにょしてみました。 本当は、PukiWikiModのバグが上がってきているのでその修正をしなくてはいけないところなのですが、ついついこちらに走ってしまいました。 :p ごめんなさい。> All このチャットは<iframe>呼び出しで、id を指定することにより、いくつでも部屋を作ることができます。~ XOOPSのカスタムブロックに使ってもいいし、PukiWikiMod から呼び出して、ページごとに簡単に設置したりできます。 とりあえず、現状のものを置いておきますので、ごにょごにょしたい人は適当に使ってください。 :D [[最新版はこちらです。>./#pe39cc9d]]~ インストール方法については [[./readme]] をご覧ください。 -PukiWikiMod用プラグイン --&ref(chat.inc.php); ---ソース中で ajaxchat.htm のURLを指定しています。~ 環境に合わせて修正してください。 -%%&ref(ajaxchat.zip);%% -%%&ref(ajaxchat.js);%% --JavaScript でエラーが出ることがあったので修正しました。 ---- ***さらにバージョンアップ :) 2005-08-30 [#od5cc45e] -%%&ref(ajaxchat_0.zip);%% ***またまたバージョンアップ 2005-08-31 [#j4cc7fca] -%%&ref(ajaxchat_1.zip);%% --内緒話&入室者情報の管理をIPからIDに変更。 ~ 同一IPの別マシンを識別できるようになりました。 --手元のパソコンとサーバーとの時間のずれを吸収するようにしました。 --自動発言を今までの Enterキーに加え「、」「。」「スペース」の入力で行えるようにし、それぞれを選択できるようにしました。 --改行ができるようになりました。 ---自動発言の「Enter」をOFFにすることで改行できるようになります。 --Cookie を保存するかどうかを選択できるようにしました。 --発言時に JavaScript のバージョンをチェックし、必要ならばキャッシュ更新を促すリンクをチャット画面に内緒話モードで表示するようにしました。 ***とりあえずこれで一段落? 2005-09-01 [#ga5d2236] -%%&ref(ajaxchat_1_1.zip);%% --発言の色を設定できるようにしました。 --ログデータがないときにJavaScriptエラーになっていたのを修正しました。 ---- -%%&ref(ajaxchat_1_2.zip);%% - まだまだ、直すところがありました。 :p --名前欄に ' とか " を入れた場合に正常に動作しなかったので修正。 --その他、細かいところをもろもろ修正。 ***早くFIXしたいな・・・ 2005-09-03 [#b539037f] -%%&ref(ajaxchat_1_22.zip);%% --発言間隔が長い場合に「この間にx時間経ちました・・・」を表示するようにした。 --発言用のテキストエリアにフォーカスが移った場合「入室」と判断するようにした。 --入室・退室の[お知らせ]案内を出すようにした。 --JavaScriptエラーが出ることがある問題の対策をした。 ***いつまで続く? (Ver 1.3) 2005-09-07 [#ta6575f1] -%%&ref(ajaxchat_1_3.zip);%% --順番に遡って過去の発言を表示できるようにした。 --過去の発言を閲覧中は、新しい発言があっても最下部まで自動スクロールしないようにした。 --その他、諸々修正。 ***まだまだ続く? (Ver 1.4)2005-09-11 [#v8cecce2] -%%&ref(ajaxchat_1_4.zip);%% --フェイスマークを入力できるようにしました。 --内緒話の時相手のID表示が自分のIDを表示していたのを修正しました。 ***ちょっとした変更 (Ver 1.5)2005-09-14 [#ocac84ad] -%%&ref(ajaxchat_1_5.zip);%% --入退室情報のログへの記録方法を変更。(国際対応化への道?) --色指定を解除できるように。 ***ポップアップ対応 (Ver 1.6) [#ed9f82d0] -未公開です。 --別窓でポップアップ出来るようにしてみました。 --サーバー負荷対策として、入室前は60秒チェックに。 --「~さんが通り過ぎました。」とか表示上の微調整。 ***Opera に対応 (Ver 1.7)2005-09-23 [#r8f97b40] -%%&ref(ajaxchat_1_7.zip);%% --Operaの無料化記念として・・・ :D --様々な微調整。 ;) -%%&ref(ajaxchat_1_7_1.zip); 15:25:02%% --FireFoxなどで、ログの部分読み込みに失敗していたので、修正しました。 ***お知らせ音が鳴るようにしてみたり (Ver 1.8) 2005-09-27 [#wab5592e] -%%&ref(ajaxchat_1_8.zip);%% --入室・退室・発言時に音で知らせるようにしてみた。 --詳細設定ボタンを追加。 ---音のON・OFFなども設定できるようにしました。 --Ver 1.7 で不具合のあった、入室者情報を修正。 --ajaxchat.htm から ajaxchat.js へ移動できるものは、移動しました。(まだ、続行中) --その他諸々修正してます。 ***無視機能追加など (Ver 1.9) 2005-10-01 [#ac187727] -%%&ref(ajaxchat_1_9.zip);%% --特定の発言者を無視(発言を表示しない)できる機能を追加しました。 --ajaxchat.htm をスリム化 --内緒時のサウンド追加 --その他諸々調整 ***閲覧者情報を右サイドへ (Ver 2.0) 2005-10-02 [#u168d218] -%%&ref(ajaxchat_2_0.zip);%% --閲覧者情報を上部または右サイド表示に切り替えられるようにしました。 ---初期状態を右サイドにしたい場合は、<iframe> 呼び出しの ajaxchat.htm のパラメーターに staypos=r を追加してください。~ ajaxchat.htm?id=1&staypos=r てな具合です。 --内緒話中は、入室者欄の名前を反転表示するようにしました。 --その他、あちこちら微調整。 ***トリップ対応など (Ver 2.1) 2005-10-08 [#ccc5d575] -%%&ref(ajaxchat_2_1.zip);%% --成りすまし防止に効果のあるトリップに対応しました。 ---名前欄に 名前#任意の文字列 と入力すると、チャット画面の名前の下にトリップが表示されます。 --ユーザーが、入室・退室・経過時間のシステム通知をON・OFFできるようにしました。詳細設定で設定できます。 --その他、微妙に修正多数。 :D ***過去ログ切り出し機能など (Ver 2.2) 2006-01-07 [#qea89cff] -%%&ref(ajaxchat_2_2.zip);%% --ログが大きくなった時に過去ログとして切り出すようにしました。~ 新たに bak ディレクトリが追加されています。パーミッションを 777等 にしてください。 ---既定では、ログのサイズが約1MBを越えると、50KBを残して過去ログとして bak/bak_[ID]_]TIMESTUMP].utxt というファイルを作成します。 ***キック申請機能の追加など (Ver 2.3) 2006-02-03 [#v5d75054] -%%&ref(ajaxchat_2_3.zip);%% --キック申請機能の追加。 --諸々バグ修正。 *** (Ver 2.31) [#t22a08f3] *** (Ver 2.32) [#t22a08f3] style.css の修正など ****最新版 [#pe39cc9d] -&ref(ajaxchat_2.32.zip); **コメント [#a2e5853c] #pcomment(,reply,15)