2016-05-31 4 views
0

私はWebアプリケーションを開発しています。ここでは、タスクのリストを示しています。
私がしなければならないことは、ユーザーがタスクを開いたとき(つまり、自分のブラウザで開くとき)、他のユーザーのリストがすべて削除されたり、タスクが実行されたことが示されたり、誰かによって開かれた。

さらに、ユーザーがタスクを閉じると(ユーザーがブラウザを閉じるなど)、他のユーザーのタスクリストに再追加する必要があります。

どうすればいいですか?クライアント側のWebSocket?その他の選択肢はどれですか?
これをサーバー側でどのように管理するのですか?

あなたの問題のための2つの解決策(私の知っていること)があるWebアプリケーションでリアルタイムのconcurencyロックを作成するにはどうすればいいですか?

+1

この動作を達成するためにこの時点まで何をしましたか?あなたが使っているテクノロジースタックは何ですか? (フロントエンドのJQuery、ミドルウェアのSpringなど)。あなたは、タスクの 'クリック'でajaxクエリを起動し、サーバが 'タスクのプール'からそのタスクの削除を処理し、ユーザがタスクを閉じるときに別のajaxクエリを発生させることができます。この時点で、これは私があなたに伝えることのできるすべてです。 –

+0

私はこのことの "実行可能性"について明確なアイデアが得られるまでコーディングを開始しませんでした。クライアント側でwebsocketを開き、タスクをロックするためにしばらく(真実)私はこの種のことをやったことがありませんでした(WebSocketを使用して)いくつかのドキュメントを読んだだけですが、私は思っています - 例えば100.000 websocketは私のサーバに接続してロックをチェックするのは良い考えではありません。 。 – hereForLearing

+0

あなたの編集を見ただけで、私は春を使っていると言うことができます(実際には私はgrailsを使っていますが、同じことです、grailsはここではあまりユーザーが少ないのでJavaの質問にする方が良いです)サーバーからの回答が無秩序で戻る可能性があるので、推奨しません。 – hereForLearing

答えて

2

ありがとう:

  • アヤックス(ロングポーリング)のAjaxを使用して

は、サーバーをポーリングすることができますX秒ごとに、記述した動作を実装するために必要なデータがあります。これはうまくいくかもしれませんが、お勧めの方法ではありません。なぜthis threadで読んでください。

  • のWebSocket

ちょうどあなたがデスクトップアプリケーション(名前)に使用したいソケットのように、あなたは、WebSocketの接続(HTTPではなく1)を開くことができます限り、それを維持あなたがそれで終わったときにのみそれを閉じてください。これは、データがクライアントとサーバーの間で常に流れるようにするための好ましい方法です。また、supported by almost every major browser out there

ありのWebRTCとサーバー送信されたイベントなど他の技術があるが、問題のあなたの説明を考慮すると、それらは、あなたが探しているものではないかもしれないです。

オフトピック:あなたの質問がなぜ落とされたのか分かりませんが、正当なものです。

関連する問題