• 締切済み

サーバー上のデータ変更をすぐに適用するには?

カテゴリ選びに悩みましたが、Flash・Perl・CGIを複合させているのでプログラミング(その他)の質問として投稿させていただきます。 Flashでチャットを作っています。 Flashで入力されたテキストをCGIに送信し、Perlプログラムを実行した後にデータを出力、それをFlashで受け取ることによってページ変移を行なうことなく通信をしているのですが、この場合データ送信の命令を受けてデータの更新がサーバー上で行なわれます。 これを、他の人の発言が更新された時リアルタイムに変更を適用させたいのですが、うまくいきません。ためしにサーバー上のテキストを読み込むプログラムを作り、テキストのほうに変更を加えてみましたが、Flashでは適用されません。新しいウィンドウを開いたら適用されました。ローカル上ではすぐに適用されます。 このように、サーバー上のデータ変更をすぐに適用させるにはどうすれば良いのでしょうか?書き込みを検地して更新を行なうという点はメッセンジャーのようなものと思っていただければ分かりやすいと思います。

みんなの回答

noname#35109
noname#35109
回答No.1

いわゆる,チャットのリロードでしょう。 >> サーバー上のデータ変更をすぐに適用させる >> にはどうすれば良いのでしょうか? 普通は,"すぐ(瞬時)に" は適用させませんよね。 "すぐに" 適用させようとすると,めまぐるしいリロードをしなくてはならなくなり, 表示をしている暇がありません。 だから,チャットの場合, リロード時間を例えば 10 秒 とかに設定しておいて(ユーザーが 5,10,30秒のように選択指定できる場合もあります), そのリロード時間ごとにリロードさせるのが一般的だと思います。 どういうプログラムで Flash に データ をロードさせているのかわかrませんが, Flash の場合も,リロード時間を設定して置いて, その設定時間ごとにデータをロードし直すのが普通だと思います。 設定時間ごとに何か動作をさせる方法も,色々ありますが, 書かれているような場合だと setInterval 関数を使うのが一般的な気がします。 だいたいの形↓ /////////////////////////////////////// // ユーザー定義関数 myfunction の定義 function myfunction() { // ←ココにデータのロード処理 } // 10000ミリ秒(10秒)ごとに myfunction を実行 myID = setInterval(myfunction, 10000); /////////////////////////////////////// 「タイマー処理を使って処理を繰り返す」 http://itpro.nikkeibp.co.jp/article/COLUMN/20060217/229658/ Flashドキュメンテーション 「setInterval 関数」 http://livedocs.macromedia.com/flash/8_jp/main/00001766.html

関連するQ&A

  • FlashよりLoadVarsクラスを使用し,CGIへデータを送信しようとしていますが…

    FlashよりLoadVarsクラスを使用し、CGIへデータを送信しようとしていますが・・・。 なかなか成功しません;; Flashのアクションスクリプト、およびCGI(Perlで)スクリプトをお教えいただけないでしょうか? -詳細- ボタンに LoadVars.send(); LoadVars.sendAndLoad(); などを使用し、Flash→CGIへ送信し、結果を表示したり、Flash→CGIへ送信し、CGIで送信した変数などを処理した後、Flashより変数を受信し、表示する。 -例- 1.Flashよりテキストフィールドに文字を入力し、CGIへ送信。 2.CGIにて受信後、受信した文字をopenで保存(.txtファイル作成) 3.先ほどCGIより保存したtxtファイルをFlashから読み込む。 -環境- 楽天さんのiswebライトでPerl言語を使い、Content-typeをHTMLでCGIを作成しております。 ご教授いただければ幸いです。 どうか、よろしくお願いいたしますm_ _m

    • ベストアンサー
    • Perl
  • データーが更新されたらSendmailで自動送信

    データーが更新されたらSendmailで自動送信 全くの初心者です。 phpかcgiでサーバーのtextファイル又はmysqlのデーターが更新されたらSendmailで 自動でメールを送信(配信)して「更新されました」とか通知されるような フリーでシンプルなプログラムを探しています。 ダウンロードできるところはありませんか? またはそのままペーストして使えるようなプログラムを教えて頂けませんでしょうか? どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • これはサーバー側の設定?

    お世話になります。 ろくにperlも書けない初心者です。 Flash(SWF)内でメールフォームを作っています。 丁度良いサンプルがあり、そのCGI(perl)をそのまま拝借。 テスト用(自前)のサーバーでは問題なく動作。 ところが実際に使用するサーバーに上げてみると動かないのです。 仕組みとしては、swfからgetURLで変数(送信元、送信先、メッセージなど)をcgiへPOST送信。 cgiは未記入のモノがあったらerror、埋まっていればOKの変数を返す。 (swf内のテキストボックスを受信用に空けています) その変数によって、飛ぶフレームを判断、「送信完了」「送信エラー」などを表示する。 といったモノです。 CGIの設置位置(perlへのパス、cgiへのパス)は確認しました。 パーミッションも確認済み。 何より、返り値の無い、HTMLを生成するタイプのCGIは動作しています。 さて、どうすれば上手く表示されるか分かりませんか? サーバーによってそういった違いってあるのでしょうか? 念のため、仕様は以下の通りです。 ウェブサーバーソフト(httpd) Apache1.3.22 Cコンパイラ gcc (ver2.8.1)/usr/local/bin/gcc OS Solaris2.6 SPARC版 利用可能なPerl Perl5 ( 5.005_03 ) よろしくお願いします。

    • ベストアンサー
    • Perl
  • flashからCGIへデータ送信

    flashからCGIへデータ送信する際、 今のところgetURLを使っているのですが、 これだとCGIページが開いてしまうので困っています。 データさえ送信できれば、CGIページは開かなくていいので、 そのようにできるやり方はありますでしょうか>< http://1art.jp/flash/le/lesson46/lesson46.htm こちらを参考にさせていただいて変更してみたのですが、 getURLだと、Flash上で定義している変数が一括で送信されているに対して、 このやり方だとこのように  my_lv.name1 = name1_txt.text; として、my_lv.○○といちいち変数を定義し直さなければならないのかな? と認識しています。(もし間違ってたらすみません) このやり方に変更すると、今まで動いていたCGIが動かなくなってしまったので; なので、できれば変数が一括送信されるgetURLのような方法があればな、と思っています。 説明下手で申し訳ありませんが、ご助言頂けると嬉しいです。

    • ベストアンサー
    • Flash
  • メッセンジャーはどのような通信をしてる?

    メッセンジャーでのチャットは、発言が行なわれたと同時にそれが画面に繁栄されます。今、似たようなシステムのFlashを作っています。テキストデータの読み込み時に対象にCGIを指定し、先にプログラム処理が行なわれてからデータを表示し、それをFlashが受け取って画面に描画するという仕組みです。この時、発言をすぐに適用するようにするには一定の間隔でそのCGIにアクセスをし続けなければなりませんが、それではサーバーに負担がかかりすぎると思うんです。メッセンジャーはどのようにして発言をリアルタイムに更新しているのでしょうか?

  • サーバを移行したのですが、プログラムが動きません。

    はじめまして。 Perl超初心者です。 先日、あるサイトのリニューアルをし、PHPでシステムを組んだのですが、一部のコンテンツに関しては、前の業者がPerlで組んでいたシステムをそのまま転用することになりました。 そこで、以前のデータを貰って、サーバのcgi-binのフォルダにそれらのデータをコピーし、関係すると思われるファイルのパーミッションを、755にし、 また、以前は、ファイルの一行目が、#!usr/local/bin/perl だったのですが、 これを、#!usr/bin/perl に修正しましたが、動いてくれません。 Internal Server Error と出てしまいます。 試しに、単純な text.cgi #!/usr/bin/perl print "Content-Type: text/html\n\n"; print "OK"; というファイルを置いてみたのですが、これは動いています。 ちなみに、移行しなければならないcgiファイルは、プログラムの中で、.pl ファイルを複数読み込んでいるのですが、このファイルのパーミッションは、755で良いのでしょうか? また、このプログラムでは、 cgi-bin のディレクトリから、 data というディレクトリの中にある.datファイルを読み込むはずなのですが、このdataというディレクトリは、cgi-binと同階層に置けばよいでしょうか? Internal Server Errorというエラーは、どういうときに出るエラーなのでしょうか? 色々ファイルを操作しても、このエラーしか出ないので、どう対処してよいかよく分かりません。 不勉強で大変心苦しいのですが、 ご回答よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 別サーバーのcgiへバイナリデータを送る方法

    サーバーAに、バイナリデータがあります。 これをサーバーBのcgiへデータを渡したいのですが、方法を教えてください。 HTMLで書くと、以下のようにc:\data.binを<form>でcgiに送信するようなイメージです。しかし、<input file>タグではセキュリティーのためvalueでファイルを指定することができません。 ここのc:\data.binは、ファイル名が変動するため、人間に手で選択させることはさせたくないです。 <form action="http://www.サーバーB.jp/Server_B.cgi" enctype="multipart/form-data" method="post"> <input type="file" value="c:\data.bin"> <input type="submit" value="サーバーAに送信"> </form> これを、cgi(Perl)を使用して、同じようなものを書くことはできますでしょうか? httpヘッダを書いて、その後ろにデータを送信して、、といった感じでできるような気がするのですが、 httpヘッダの書き方が分かりません。 受け側のサーバーBのcgiでは、CGI_Lite.pmを使用してバイナリデータを受信します。 通常、バイナリのデータ送信はftpを使用するのだと思いますが、相手側がftpに対応していません。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • Ajax⇒CGI

    JavaScriptは結構知ってますが、 AjaxとPerlに関しては初心者のものです。 早速ですが質問です。 Ajaxで送信したデータをCGI(Perl)で処理して、 サーバーのテキストに保存する方法が良く分かりません。 サーバーはCGIを許可しているところを使っています。 どなたか詳しい方、ご教授お願いします!

  • 他のサーバーのファイルを読む

    ある人(私とは別のサーバー)にCGIを配布する予定です。CGIにアクセスすると、私のサーバーに存在するデータファイルを読んで、データが更新されているかチェックする、そんな機能がほしいのですが、一般的にどういう技術を使っているのか全く分かりません。簡単にアドバイスいただけたらと思います。よろしくお願いします。言語はPerlです。

    • ベストアンサー
    • CGI
  • サーバーからのデーター取得について

    他のPCからjavaでpost送信したデーターをサーバーを通して自分のPCにPHPで表示する勉強をしています。 他のPCからサーバーにはアクセスできてデーターは送信されているようですが、自分で作成したPHPのプログラムではPCで見ることができません。 もしよろしければ自分のPCで表示するためサーバーからデータを取得するプログラム、参考サイトを教えてください。 JAVAは少々分かりますが、PHPは素人になります。 お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう