2016-08-08 2 views
1

私はASP.NET MVCとSignalRを初めて使用しています。 MVCとSignalRに関するチュートリアルに続いて、基礎を捉えました。私は検索し、読んでテストしましたが、私の問題に特化したものはありません。だから私は最初からすべてを明確に説明しようとします。 MVCとSignalRを使ってWebチャットプログラムを作成しようとしています。私はSignalRとMVCの使い方とセッション処理を理解できないようです。ASP.NET MVC 5、SignalR 2.2.1およびセッション。それらを使用してWebチャットを作成する

ユーザーセッションに従って、ユーザーがログインしているかどうかを判断する必要があります。

チャットルームを作成する機能があります(ログインしているユーザーのみ)。 (1)ユーザーでログインしていない

オプション:

ログインしているユーザーだけでなく、名前を入力する必要があり、その後、彼はチャットルームの一部にアクセスできるようになります。彼は新しいチャットルームを作ることができません。

オプション(2)ログインしてい:

ログインしているユーザーは、チャットルームを作成することができます。他のチャットルームに参加しましょう。

質問:

  1. 新しいチャットルームの作成が達成されなければならない方法は?

    • 実行時に新しいチャットルームのビューを動的に作成しますか?
    • 静的ビューを1つ作成し、データを表示するためにのみ使用します(すべてのユーザーと部屋について、どの部屋のユーザーをプログラムで決定し、他のすべてのユーザーをフィルタリングし、すべての会話をフィルタリングし、その静的なビューの特定の部屋の特定のユーザーのために...)?
    • 他に何かありますか?
  2. ユーザーがログインしているかどうかを確認するにはどうすればよいですか?

  3. SignalRに関連するログインユーザーの確認方法はどのくらいですか?
  4. チャットルームでの参加はどのように達成されていますか?
  5. ログインしていないユーザーのセッションに従うべきですか?
  6. どこのアプリケーションでもセッションが本当に必要か、ユーザーがログインしているかどうかを判断するセッションが必要ですか?
  7. DBにメッセージを直接格納する必要がありますか、DBに挿入する前に何らかのバッファを行う必要がありますか? (私は同時に600,000人の人がチャットをしていると言いますが、DBに直接挿入してデータベースサーバーを "過熱"させますか?)

私はそれが今のところだと思います。何かが起きたら編集します...

私を助けようとするすべての人に前もってありがとう。

答えて

2

これは同時に多すぎる質問です。私はもっ​​と具体的にしようとすると、あいまいな答えを得るでしょう。

主な質問について、あなたはおよそSignalR authentication and authorization

基本的にあなたが保護したいCreateRoomのようなメソッドに[Authorize]属性を追加することができますを学ぶ必要があります。これらはログインしているユーザーだけが利用できます。セッションを処理したり、チェックを行う必要はありません.SignRがそれを行います。

[Authorize]でマークされていないメソッドは "anonymous"です。これは、どのユーザーも呼び出すことができることを意味します。

チャットルームでの参加はどのように達成されていますか?

各部屋にクライアントの静的なリストを保存し、接続と切断を自分で管理できます。または、より良いことに、SignalR groupsを使用することもできます。

SignalRで作られたJabbr.netと呼ばれるすばらしい(そして高度な)作業チャットアプリケーションがあります。あなたはsource codeをつかんでそこにあるすべての答えを見つけることができます

+0

ありがとうございます。あなたが提供した情報とリンクは、私にとって非常に役に立ちました。 –

1

おそらくあなたは何とかSignalRの概念と機能を理解していないと思います。 もう一度SignalRをチェックし直す必要があります。基本的には、.NETでチャットアプリケーションを作成するために使用されています。

インターネット経由で検索できるものは: * SignalRを使用してチャットアプリケーションを作成します。 * SignalRを使用すると、グループとチャットを作成できます。

グループは、権限のあるユーザーと権限のないユーザーのチャットを管理するのに役立ちます。

これらの検索は、すべてのご質問とご理解のための最良のアイデアを提供します。

+0

ありがとうございます、私はより多くを検索し、学びます。 –

関連する問題