タグ付けされた質問 「client-server」


6
クライアントサーバー同期パターン/アルゴリズム?
クライアントとサーバーの同期パターンがそこにあるに違いないと感じています。しかし、私は完全に1つをグーグルに失敗しました。 状況は非常に単純です。サーバーは中央ノードであり、複数のクライアントが同じデータに接続して操作します。データはアトムに分割できます。競合が発生した場合、サーバー上にあるものは何でも優先されます(ユーザーが競合を解決しないようにするため)。潜在的に大量のデータがあるため、部分同期が推奨されます。 そのような状況のパターン/良い習慣はありますか、またはあなたがそれを知らない場合-あなたのアプローチは何ですか? 以下は、私が今それを解決しようと考えている方法です。データと並行して、すべてのトランザクションにタイムスタンプが付けられた変更ジャーナルが保持されます。クライアントが接続すると、最後のチェック以降のすべての変更が統合された形式で受信されます(サーバーはリストを調べて追加を削除し、その後に削除、各アトムの更新のマージなど)。Et voila、私たちは最新です。 代わりに、各レコードの変更日を保持し、データの削除を実行する代わりに、削除済みとしてマークするだけです。 何かご意見は?

10
HttpURLConnectionでPOSTを使用してファイルを送信する
Android開発者がクラスの使用を推奨しているので、HttpURLConnectionビットマップ「ファイル」(実際にはメモリ内ストリーム)をPOST経由でApache HTTPサーバーに送信する方法の良い例を誰かが私に提供できるかどうか疑問に思っていました。私はCookieや認証などの複雑なものには興味がありませんが、信頼性の高いロジック実装を望んでいます。私がここで見た例はすべて、「これを試してみて、おそらくうまくいく」ように見えます。 現在、私はこのコードを持っています: URL url; HttpURLConnection urlConnection = null; try { url = new URL("http://example.com/server.cgi"); urlConnection = (HttpURLConnection) url.openConnection(); } catch (Exception e) { this.showDialog(getApplicationContext(), e.getMessage()); } finally { if (urlConnection != null) { urlConnection.disconnect(); } } ここで、showDialogはAlertDialog(無効なURLの場合は)を表示するだけです。 ここで、次のようにビットマップを生成するとします。Bitmap image = this.getBitmap()派生したコントロール内で、ViewPOSTを介して送信したいとします。そのようなことを達成するための適切な手順は何でしょうか?どのクラスを使用する必要がありますか?この例のHttpPostように使用できますか?もしそうなら、私は自分のビットマップのをどのように構築しますか?最初にビットマップをデバイスのファイルに保存する必要があるのは嫌です。InputStreamEntity また、元のビットマップのすべての変更されていないピクセルをサーバーに送信する必要があるため、JPEGに変換できないことにも言及する必要があります。

4
ReactJSサーバー側レンダリングとクライアント側レンダリング
私はReactJSを研究し始めたばかりで、ページをレンダリングする2つの方法(サーバー側とクライアント側)を提供することがわかりました。しかし、一緒に使う方法がわかりません。アプリケーションを構築する方法は2つありますか、それとも一緒に使用できますか? それを一緒に使用できる場合、その方法-サーバー側とクライアント側で同じ要素を複製する必要がありますか?または、サーバーでアプリケーションの静的な部分を構築し、クライアント側で動的な部分を構築できます。事前にレンダリングされたサーバー側への接続はありませんか?

5
Python用に実装されたWebSocketクライアントはありますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する 私はこのプロジェクトを見つけました:WebSocketサーバー用のhttp://code.google.com/p/standalonewebsocketserver/ですが、PythonでWebSocketクライアントを実装する必要があります。正確には、WebSocketサーバーでXMPPからいくつかのコマンドを受信する必要があります。

2
S3にデータを保存し、rails API / iOSクライアントを使用して安全な方法でユーザーアクセスを許可する方法
RailsとAPIを書くのは初めてです。S3ストレージソリューションについてサポートが必要です。これが私の問題です。 ユーザーがiOS上のFacebook APIでログインするiOSアプリのAPIを書いています。サーバーは、FacebookがiOSユーザーに発行するトークンに対してユーザーを検証し、一時的なセッショントークンを発行します。この時点から、ユーザーはS3に保存されているコンテンツをダウンロードする必要があります。このコンテンツは、ユーザーとその友達のサブセットにのみ属します。このユーザーは、S3にさらに多くのコンテンツを追加できます。このコンテンツは、同じ束の人々がアクセスできます。ファイルをFacebookグループに添付するのに似ていると思います... ユーザーがS3とやり取りする方法は2つあります。サーバーに任せるか、サーバーに一時的なS3トークンを発行させ(ここでの可能性は不明)、ユーザーはコンテンツURLを直接S3に到達させることができます。私はアプローチについて話しているこの質問を見つけました、しかしそれは本当に(2年前に)日付が付けられました:iPhoneアプリとS3からの写真のアップロードに関するアーキテクチャとデザインの質問 だから質問: 一時的なトークンが発行されたときに、ユーザーがS3の一部のコンテンツのみにアクセスすることを制限する方法はありますか?これどうやってするの?10万人以上のユーザーがいるとします。 iOSデバイスにこのコンテンツを直接引き出しさせるのは良い考えですか? または、サーバーにすべてのコンテンツの受け渡しを制御させる必要があります(これにより、もちろんセキュリティが解決されます)?これは、接続されているユーザーにコンテンツを渡す前に、すべてのコンテンツをサーバーにダウンロードする必要があることを意味しますか? レールを知っている場合...ペーパークリップとaws-sdkジェムを使用してこのような設定を実現できますか? 複数の質問についてお詫び申し上げます。問題についての洞察はありがたいです。ありがとう:)

8
JavaソケットAPI:接続が閉じているかどうかを確認する方法は?
JavaソケットAPIでいくつかの問題が発生しています。ゲームに現在接続しているプレーヤーの数を表示しようとしています。プレーヤーがいつ接続したかは簡単に判断できます。ただし、ソケットAPIを使用してプレーヤーがいつ切断されたかを判断するのは不必要に難しいようです。 isConnected()リモートで切断されたソケットを呼び出すと、常に戻るように見えtrueます。同様に、isClosed()リモートで閉じられたソケットを呼び出すと、常に戻るように見えfalseます。実際にソケットが閉じられているかどうかを判断するには、データを出力ストリームに書き込み、例外をキャッチする必要があることを読みました。これは、この状況を処理するための本当に不潔な方法のようです。ソケットがいつ閉じられたかを知るために、ネットワークを介してゴミメッセージを絶えず送信する必要があります。 他の解決策はありますか?

6
クライアント/サーバーデータベースの同期
中央サーバー上のデータを、常にオンラインであるとは限らないクライアントアプリケーションと同期するためのいくつかの一般的な戦略を探しています。 私の特定のケースでは、sqliteデータベースを備えたAndroid電話アプリケーションとMySQLデータベースを備えたPHPWebアプリケーションがあります。 ユーザーは、電話アプリケーションとWebアプリケーションで情報を追加および編集できるようになります。電話がサーバーとすぐに通信できない場合でも、1か所で行った変更がすべての場所に反映されるようにする必要があります。 電話からサーバーに、またはその逆にデータを転送する方法には関心がありません。たとえば、MySQLで利用可能なレプリケーション機能を使用できないという理由だけで、特定のテクノロジについて言及しています。 クライアント/サーバーデータの同期の問題が長い間発生していることを知っています。問題を処理するためのパターンに関する情報(記事、書籍、アドバイスなど)が必要です。同期を処理して長所、短所、およびトレードオフを比較するための一般的な戦略について知りたいのですが。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.