メイン 一般的な話題(General)
持続的接続ハートビートをAjaxで実現 | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| aokazu | 投稿日時: 2008-10-6 15:05 |
Baker 常連 ![]() ![]() 登録日: 2007-1-8 居住地: 浦安 投稿: 57 |
持続的接続ハートビートをAjaxで実現 aokazuです。
お世話になっております。 セッションが切れてデータ登録が出来ないというクレームに対応するために ハートビートという技法があるのを知りました。 http://www.ipa.go.jp/security/awareness/vendor/programming/a05_03.html 上記ではフレームを利用してハートビートしているのですが、 これならAjaxで実装できると思い、下記のようなプログラムを行いました。 セッションが切れる10秒前にハートビートをAjaxで呼び出します。 ますは、エレメントを作成 /views/elements/heart_beat.thtml エレメントをレイアウトから呼び出します。 /views/layout/default.thtml ※prototype.js が必要です。 Ajax呼び出し先 URLのコントローラを設定します。 今回は(/contents/heart_beat/)とします。 /controllers/contents_controller.php 上記アクションに対するビューを設定 /views/contents/heart_beat.thtml ファイルの中は空のままでOK。 何か問題点があればご指摘頂けるとありがたいです。<(_ _)> aokazu mode-A |
| aokazu | 投稿日時: 2008-10-7 21:30 |
Baker 常連 ![]() ![]() 登録日: 2007-1-8 居住地: 浦安 投稿: 57 |
Re: 持続的接続ハートビートをAjaxで実現 自己レスです。
セッションが切れる時間は、php.ini ではなく CAKE_SECURITYによって決定されるようなので セキュリティーレベルごとに設定するようにエレメントを変更しました。 /views/elements/heart_beat.thtml aokazu mode-A |
| aokazu | 投稿日時: 2008-10-17 8:11 |
Baker 常連 ![]() ![]() 登録日: 2007-1-8 居住地: 浦安 投稿: 57 |
Re: 持続的接続ハートビートをAjaxで実現 自己レスその2です。
セッションタイムアウトの時間は、 CAKE_SESSION_TIMEOUT と掛け合わせて決定するのですね。 エレメントの再変更を行いました。 /views/elements/heart_beat.thtml ※ハートビート更新の直前に、画面更新を行うと 戻ってきた時にセッションが入れ替わっていてエラーになるようなのですが、 何か対策する方法は考えられますでしょうか? CAKE_SECURITY=='high' で 20分なので確立的には低いのですが、、、。 |
| aokazu | 投稿日時: 2008-10-29 14:42 |
Baker 常連 ![]() ![]() 登録日: 2007-1-8 居住地: 浦安 投稿: 57 |
Re: 持続的接続ハートビートをAjaxで実現 aokazuです、お世話になっております。
どうやら javascript のタイマーはPCに依存するので、 サーバーとの誤差が発生してしまうようです。 1秒だと誤差を飲み込めないケースが結構発生していました。 15秒ほど早めに設定をするようにしました。 mode-A |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |


