1

私はフォーラムに不慣れです。アドバイスをいただければ幸いです。たくさん検索し、たくさんのトピックを読んで読んで、自分のプロジェクトに最適な方法を見つけました。

私は、Wampサーバー(イントラネット)を使用して、職場で内部的に使用されるブロードキャストサイトを構築しています。

使用言語:PHP、JS、Ajax、MySql

今のところチャットシステム(スパーク)を使用していますが、プロジェクトのアイデアは放送記録を保持することであり、追跡がより簡単です

サードパーティのアプリケーション/ツールを提供しないでください

ユーザーが情報を送信する簡単なhtmlフォームがあります。この例を考えてみましょう。

フォーム:タイトル(入力テキストフィールド)、ブロードキャストメッセージ(入力テキストフィールド)

dbテーブルに保存されている情報:

bc_id、title、bc_msg、submited_by、date_time

別のテーブルuser_got_bc:user_id、bc_id、bc_sent(デフォルトは0)、通知が送信されると、値は1になります

私はajaxを使用して「user_got_bc」テーブルを調べ、どのユーザーがbc_sent = 0であるかを確認し、他のテーブルからのbc情報を使用して通知を送信してから、bc_sentの値を1に更新しています。

ajaxコードは、setinterveralを使用して10000ミリ秒ごとに実行されます

ユーザーがブロードキャストを送信したら、他のすべてのユーザー(PLURAL)が同じ時間に通知を受信するようにします(1秒以下でも大丈夫です)

通知に関しては、心配する必要はありません。デスクトップ通知(webkitnotification)を使用しています。クロスブラウザ互換ではないことはわかっていますが、問題はなく、正常に機能しています。

とはいえ、すべてが正常に機能しています

私が心配しているのは、ajaxコードがサーバーに対して行う接続の数です。これが良いか悪いかによって、ユーザーが増えるほど、接続も増えます。

特に、10秒ごとxユーザー数であるため、その量の接続でサーバーを攻撃するのは良くないことを私は知っています。

私は彗星を使用するために多くのフォーラムで読んだ、私が集めたものからそれはPHPと友好的ではない、そして私は以前にそれを実装したことがない

だから私の質問は次のとおりです:-より良い方法がありますか、それとも設定された方法で問題ありませんか?-彗星の方が優れている場合、そのプロジェクトで機能するスニペットを提供することは可能ですか?

よろしくお願いします。

4

1 に答える 1

0

Ajax ロング ポーリングについてはググってください。しかし、この種のプロジェクトでは、次のようなリアルタイム I/O ソフトウェアを使用することをお勧めします。

node.jssocket.io

JavaScript のスキルがあれば、上記のアプリを問題なく使用できます。プロジェクトのユーザー数が増える場合は、PUB-SUB、リアルタイム、クロス ブラウザー ソケットのサポートが必要になります。最後に PUSH テクノロジー。上記のアプリには、このすべての機能があります。だから試してみてください。

それでも PHP、JS、Ajax、MySql に固執したい場合は、Ajax ロング ポーリング テクニックが必要になることがあります。

于 2013-06-19T09:21:01.780 に答える