1

予定の作成中に設定された時間間隔の前に、顧客に予定を知らせる必要がある機能があります。

:
顧客が今日の午後 4 時にシステムにログインしました。
顧客が今日の午後 5:00 に予約を設定し、リマインダーの分数を 10 に設定した場合、
これにより、今日の午後 4:50 (つまり、実際の予約開始時刻の 10 分前) に表示されるビープ音のポップアップが呼び出されます。
開始時間、終了時間、(日付とともに) を含むすべての予定を、顧客数のバックエンド テーブルに格納しています。

リアルタイムで次のことを達成するように私を導いてください:
(1) 午後 4 時 50 分にこのポップアップを呼び出す
(2) データベースに保存されているサウンドファイルを再生する

私の検索から、mvc のシグナルの概念を使用してこれを行う方法があります。このリンクでチャット アプリケーションのサンプルを確認しました。 http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

これにより、イベントが発生したときにハブが呼び出されます。しかし、私のアプリケーションでは、開始時刻が現在の時刻と一致した場合にポップアップを表示するリマインダーとして機能する必要があります。これをリアルタイムで取得する方法。どんなアイデアでも私を助けることができます。

4

3 に答える 3

1

すべてを行うことができますが、ChristianDev が言うように、SignalR はそのままではこのようには機能しません... とにかく SignalR でこれを行うことができると思いますが、いくつかの課題があります...

  1. クライアントの予定のためにサーバーで状態を維持する必要があります
  2. クライアントがページ間を移動するとき、この状態は接続間で永続的でなければなりません
  3. イベントが発生したら、正しいクライアントにメッセージを送信する必要があります
  4. そのクライアントが現在ページ間 (オフライン) にある場合、クライアントがオンラインに戻るまでメッセージを保存してから、クライアントに送信する必要があります。

編集:書くのは楽しいことのように思えたので、簡単な通知アプリケーションを書きました。おそらく、かなり簡単に SignalR に移植できます。リアルタイム通知のサンプル

于 2013-10-09T09:40:19.180 に答える
1

これは、WebSocket を使用するのに適した状況です。( Socket.IOを見てください。これは .NET バージョンSocketIO4Net です)

アイデアは、ビジネス ロジック サーバー側で、どの顧客にリマインドする予定があるかを管理することです。次に、WebSocket を使用してリマインダー シグナルを送信します。顧客がログインしている場合、js クライアント側がシグナルをキャッチし、それをどのように表示するかを決定します。

データベースに保存されているサウンドを再生するには、サウンド ファイルなどを返すアクション サーバー サイドを実行し、HTML 5 タグを使用してサウンドを再生します。

お役に立てれば。

于 2013-10-08T15:30:33.470 に答える
1

アプローチを変更し、ユーザーwindows service電子メール/SMSを使用して予定を思い出させることができます。これは、ユーザーがリマインダーを受け取るために Web アプリケーションにログインする必要がないことを意味します。

などのテクノロジを使用する場合はSignalR、接続しているユーザー (およびそのユーザー名) の記録を保持する必要があります。次に、予定の時間になったら、イベントをトリガーして、問題のユーザーに送信する必要があります。ユニークconnectionId

箱から出してすぐに使用できるSignalRは、このようには機能しませんが、ここで私の質問を見てください。

編集:これに追加するには、非常に優れた通知プラグインを探している場合は、John Papa を見てください。これはToastR、「時間指定された Outlook スタイルの通知」を介して通知する小さな JS/Css プラグインです。

于 2013-10-08T15:38:44.643 に答える