2016-09-20 9 views
0

これを試作するまでに、他の人からの入力を求めると思った。SignalR&browsersローカルストレージ使用例

ユーザーが圏外(携帯電話、無線など)になったときにWebページにリストが表示されます。ユーザーがリストアイテムごとにデータを変更して変更をローカルに反映できるようにする必要があります接続が再確立されるまで

これを実現するには、SignalRとブラウザのローカルストレージを使用することを考えました。

SignalRは、リアルタイムデータを送受信するための接続です。

接続状態が接続されている場合は、通常どおり、フォームの変更をリアルタイムで送信します。

接続状態が切断されている場合、ローカル記憶域は、ハブとの再接続が発生するまで、変更されたフォームデータを格納するために使用されます。

誰もがこの穴を撃つことができますか?長所短所?より良いアプローチですか?

私のスタックには、JavaScript、HTML5、C#のAPIは、自分の考えを事前に

おかげです。

答えて

0

私は確かにそれをお勧めしたいと思います。

「WebSockets」を使用してSignalRを接続できるようにするための要件が​​すべて満たされていることを確認してください。これは真の双方向接続であり、切断を検出する最良の方法です。

SignalRがWebソケットを使用できない場合、「Server Sent Events」などのメカニズムに落ちます。これは、Webソケットだけでなく、正常に動作します。

SignalRを使用するWebソケットの最小要件については、http://www.asp.net/signalr/overview/getting-started/supported-platformsを参照してください。

+0

serverSentEventsポーリングではありません - サーバーはテストでストリーミングファッション – Pawel

+0

でクライアントにデータをプッシュされて、私は、このような接続方法は、ポーリングの形だったと仮定としてserverSentEventsは、キープアライブの形を持っていた気づきました。調整された答え、ありがとう。 –

0

SignalRを使用してデータを送信したり、サーバーからデータを取得したりすることはできません。通知を受信した後、サーバがクライアント(ブラウザ/モバイル/デスクトップ)サーバーに照会して最新のデータを取得します。

あなたの場合、この目的のために特別に作成されたAdo.Netデータサービスをチェックすることができます。

ブラウザのローカルストレージで実行したい場合は、いつでもサーバーにデータを保存できます。接続エラーがあった場合は、ローカルストレージに保存して、ただ1つのSignalR接続を使用して接続状態(オンライン/オフライン)、接続をオンラインに戻すと、ローカルストレージに保存した更新をサーバーに投稿することができます

+0

サーバーからデータを取得するのにsignalrを使用しないでください。 – Tester

+0

これを行うように設計されておらず、サーバーからデータを取得する他の方法もあるため、SignalRの主な関心事はサーバーから通知され、サーバーからデータを取得すると最終的に設計上の問題になります –

+0

あなたはsignalrを使用しており、小さなデータしかサーバーに送信しなくてはならないので、WebAPIを並行して使用する理由は何もありません。 SignalRは両方の方法で設計されています。または、これが書かれたリンクを私に見せてもらえますか? – Tester

0

もしあなたが自分でこれを構築するのであれば、おそらくPouchDBは解決しますあなたの問題。 SignalRやWebAPIは必要ありません。

https://pouchdb.com/

関連する問題