3

ASP.NET MVC (バージョンは関係ありません) で Web サービスを使用してリアルタイムの更新を取得し、特定のユーザーのブラウザー ウィンドウに投稿する方法の例を見つけようとしています。

完璧な例は、5 秒ごとに新しいメッセージをチェックするページに JavaScript タイマーを作成する代わりに、メッセージが投稿されるたびに応答が適切なブラウザー (クライアント) に送信される Facebook のようなチャット システムのタイプです。同期プログラムの種類については何度も聞いたことがありますが、サードパーティのソフトウェアを使用するのではなく、コードでこれを探しています。

私が具体的にやろうとしていること:

ASP.NET MVC に基づく SQL および Web サービスである Web ブラウザー チャット クライアントを作成しようとしています。2 ~ 4 の異なるユーザー名がシステムにログインしている場合、SQL データベースに保存されているメッセージを互いにチャットして送信し、新しいエントリがある (または誰かが新しいメッセージを送信した) と、Web サービスはこの変更を認識します。次に、受信ユーザーに新しく更新されたメッセージを表示します。EG フル チャット Web サービスを使用した同期チャット。

一般的に私を本当に悩ませているのは、SQL テーブルに何か新しいものが追加されたかどうかを検出する方法がわからないことと、SQL から特定のユーザーの Web ブラウザに情報を送信する方法がわからないことです。したがって、web サイトに userA、userB、userC のすべての人がいる場合、userC にのみメッセージを表示する方法がわかりません。私が今作成しようとしているものだけでなく、将来のプロジェクトのためにもこの機能を実行できることを熱く知りたいです。

誰かが私を正しい方向に向けることができますか? 私は SQL をよく知っており、Web サービスについては中級者です。

4

1 に答える 1

2

このタスクにはSignalRを使用できます。

スコット・ハンゼルマン経由:

  1. Asp.netmvc空のアプリケーションを作成します

  2. SignalRのnugetパッケージをインストールします

  3. 新しいコントローラーを追加します(例としてHomeController):

    public class HomeController:Controller {public ActionResult Index(){return View(); }}

  4. javascript参照を使用してビューインデックスを作成します:@ Url.Content( "〜/ Scripts / jquery-1.6.4.min.js") "" @ Url.Content( "〜/ Scripts / jquery.signalR.js")"および関数:

    $(function () {
        var hub = $.connection.chatHub;
        hub.AddMessage = function (msg) {
            $('#messages').append('<li>' + msg + '</li>');
        };
        $.connection.hub.start().done(function() {
            $('#send').click(function() {
                hub.send($('#msg').val());
            });
        });
    });    
    
  5. クラスChatHubを作成します。

    public class ChatHub:Hub {public void Send(string message){Clients.AddMessage(message); }}

于 2012-07-29T23:50:59.677 に答える