する質問をすることでしか得られない、回答やアドバイスがある。クライアントアプリケーションよりHttpURLConnectionを利用して、指定のサーバー(例http://xxxxx.com/test.php)へアクセスして、返されたデータを取得。この処理は0.5秒毎に実行されます。phpの処理内容は、指定のデータベースへ接続し15kbのテキストデータを取得し、取得したものをechoにて出力されるものです。単純計算で1秒間に30kb*100人で3MBの送信量があり、1日/30日スパンで考えるととんでもないリクエスト数と通信量になってしまい、AzureかAWSで考えているのですが高額な料金を請求されるのではないかと思っています。※ちなみにユーザーがデータベースへデータを送信する事はありません。受信のみを実行します。そこで考えたのが、クラウドサーバーを経由しないアプリ同士のソケット通信を考えたのですが、パケット開放の関連で厳しいと感じました。次に考えたのが、socket.ioなのですが、調べたのですが今一分かりませんでした。上記の利用を想定した場合、よりコストやパフォーマンスの点など、より良くなりますでしょうか?(データベースの参照やHttpURLConnectionを必須条件という訳ではないです。ソケット通信が良い例ですが、とにかく最新のデータを効率良く取得(共有)出来ればいいと思っております。)他に何か最善策があれば、教えて頂けますと幸いです。attachmentクリップ5気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。08:00通信要件が全然分かりません。通信要件が全然分かりません。訂正しましたが、しっかり説明できているか自信がないです。何か不明点・必要な情報があれば教えて頂けますと助かります。訂正しましたが、しっかり説明できているか自信がないです。何か不明点・必要な情報があれば教えて頂けますと助かります。08:28何をやろうとしているのかを開示するのがてっとり早いと思います。何をやろうとしているのかを開示するのがてっとり早いと思います。件sort評価が高い順sort新着順sort古い順link+2回答ではないですが、そもそも0.5秒に15kbを常時送受信し続ける仕様というのがどこのサーバでやるにしてもまずいと思います。送受信するデータを圧縮する、テキストデータをやめてバイナリデータにして無駄を省く、ポーリングの期間を伸ばす、またはユーザに必要のないタイミングでの送受信を控える、等の仕様を考えるべきかと思います。通信帯域を常時圧迫するようなことをするとプロバイダに目をつけられてサービスを停止させられる可能性も考えられるので、できるだけ省エネにすることをおすすめします。あと、socket.ioで通信しても「ユーザ間の直接通信」ではないので、結局サーバへの通信量は変わりません。あなたがサーバの通信量を気にして端末間の直接通信をやるのであれば、UDPホールパンチングという技術を使えばポートの問題は多少解決されます。これで通信できるのはTCPではなくUDPなので、アルゴリズムを正しく考えないとパケットロスや伝達順序に問題がでます。アプリ側でUDPの通信にIDを割り振ったりタイムスタンプを割り振ったり、受け手側がパケットロスした情報を再要求できる仕組みを考えれば、UDPでもある程度の信頼性を高めることは可能です。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link+1数字だけ見ると、通信量は大したことないです。なんで、100Mベストエフォート内に収まる。アクセスが問題になりそう。データを拾い処理する要件のほうが厳しいはずです。件を同じタイミングで返さなくてはならないのであれば、分散させないといけない要件が発生したり。意味のないところで悩んでいるんで、プロトタイプでも作って試してみることをオススメします。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link+1最新の情報が得られれば良いんだよね?なら設計から見直して差分を受け取れるようにするのが第一段階だね。11:23:34"クライアントは2度目以降はこの時刻以降のデータが欲しいというリクエストを投げて差分と時刻を受け取る。すれば30秒に一度という高頻度のアクセスでも、データ更新がなければ時刻1行の超しょぼいデータしかやり取りが行われない。WebSocketでやる場合。基本は一緒、最初に全データをドカンと落としてきて後は1件ずつサーバ側がクライアントに向かってブロードキャストで送信する。PHPはSocket.ioのやり取りは苦手なので本気で構築するのはあまりおすすめしない。RubyやNode.jsでWebSocketのサーバーを構築すると同時接続可能台数は数千台が限界。サーバーのCPU等の負荷とは別の所(主にネットワーク周り)にボトルネックがあり、そこが事実上の限界となる。この辺が基本的な情報だね。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link0さくらのクラウドなら通信量による課金はないので、さくらのクラウドを使えばいいかと思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link0目的をはっきりさせた上で、もう少し上のレベルでものを考えた方が良いかと思います。慣れているから、だけでは?HTTPがステートレスなプロトコルであるために、0.5秒毎にリクエストするような発想になってしまうわけで、各クライアントが通信したい相手のIPアドレスを知っているならSocketを使ってステートフルな接続を作って双方向のメッセージングができますよね。高レベルなミドルウェア(たとえばActiveMQなどのJMSブローカ)を使う手もありますね。XMPPみたいなプロトコルをサポートしているミドルウェアもあったと思います。ほとんどの場合、低レベルなオレオレプロトコルを考えるより、目的に合った標準プロトコルや出来合いのミドルウェアを探した方が良いと思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link0Socket.IOの特徴として何かが変更されたタイミング(データベースが更新されたなど)で何かの処理をするというのは簡単にできます。データが更新されたタイミングでクライアントにデータを送るということでいいのであればSocket.IOがいいかと思います。データの更新関係なく0.5秒ごとにデータベースにアクセスする必要はないかと思いますが0.5秒というタイミングを変更できないのであればSocket.IOを使う利点はあまりないかもしれません。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。C#クライアントからphpファイルへアクセス受付中ニコニコ生放送のコメントが取得できない。解決済wordoressログイン画面にアクセスできない。頂いたご意見への回答は行っておりません。