中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

發布時間:2021-07-17 14:38:18 來源:億速云 閱讀:213 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關Asp.net 中怎么利用SignalR創建一個實時聊天應用程序,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

創建一個 ASP.NET MVC 5 應用程序,安裝 SignalR 庫,添加和創建聊天應用程序。

1).在 Visual Studio 中,創建一個 C# ASP.NET 應用程序的目標.NET 框架 4.5,命名為 SignalRChat,并單擊確定.

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

2).在New ASP.NET Project對話框中,選擇MVC和單擊更改身份驗證

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

注意:如果應用程序選擇一個不同的身份驗證提供程序,將創建Startup.cs類,這里選擇無身份驗證所有我們自己創建一個Startup類。

3).安裝SignalR
打開工具 |庫包管理器 |程序包管理器控制臺,然后運行以下命令。此步驟向項目中添加一組腳本文件和啟用那么 SignalR 功能的程序集引用。

輸入:install-package Microsoft.AspNet.SignalR

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

安裝完成,Scripts文件夾下出現了這樣的文件:

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

4).創建Startup類:

在根目錄下創建類,命名為Startup:

using Owin;
using Microsoft.Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
 public class Startup
 {
  public void Configuration(IAppBuilder app)
  {
   // Any connection or hub wire up and configuration should go here
   app.MapSignalR();
  }
 }
}

5).在項目中添加Hubs文件夾,添加現有項:
鼠標右鍵單擊Hubs文件夾,請單擊添加|新項目,選擇Visual C# |Web |那么 SignalR節點在已安裝窗格中,從中心窗格中,選擇那么 SignalR 集線器類 (v2)并創建名為ChatHub.cs。

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

修改代碼:

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
 public class ChatHub : Hub
 {
  public void Send(string name, string message)
  {
   // Call the addNewMessageToPage method to update clients.
   Clients.All.addNewMessageToPage(name, message);
  }
 }
}

6).編輯HomeController類發現在Controllers/HomeController.cs中,將以下方法添加到類。此方法返回的聊天的視圖,您將在后面的步驟中創建。

public ActionResult Chat()

{

 return View();

}

7).在Chat()方法上右鍵>添加視圖頁

Asp.net 中怎么利用SignalR創建一個實時聊天應用程序

修改代碼為:

@{
 ViewBag.Title = "Chat";
}
<h3>Chat</h3>
<div class="container">
 <input type="text" id="message" />
 <input type="button" id="sendmessage" value="Send" />
 <input type="hidden" id="displayname" />
 <ul id="discussion"></ul>
</div>
@section scripts {
 <!--Script references. -->
 <!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
 <!--Reference the SignalR library. -->
 <script src="~/Scripts/jquery.signalR-2.0.3.min.js"></script>
 <!--Reference the autogenerated SignalR hub script. -->
 <script src="~/signalr/hubs"></script>
 <!--SignalR script to update the chat page and send messages.-->
 <script>
  $(function () {
   // 建立對應server端Hub class的對象,請注意ChatHub(Hubs文件夾下的類名)的第一個字母要改成小寫 
   var chat = $.connection.chatHub;
   // 定義client端的javascript function,供server端hub,通過dynamic的方式,調用所有Clients的javascript function 
   chat.client.addNewMessageToPage = function (name, message) { //這里的fuction(name,message)=>ChatHub.cs 中的Send(string name, string message)
    //當server端調用sendMessage時,將server push的message數據,呈現在wholeMessage中 
    $('#discussion').append('<li><strong>' + htmlEncode(name)
     + '</strong>: ' + htmlEncode(message) + '</li>');
   };
   // Get the user name and store it to prepend to messages.
   $('#displayname').val(prompt('Enter your name:', ''));
   // Set initial focus to message input box.
   $('#message').focus();
   //把connection打開 
   $.connection.hub.start().done(function () {
    $('#sendmessage').click(function () {
     //調用叫server端的Hub對象,將#message數據傳給server 
     chat.server.send($('#displayname').val(), $('#message').val());
     $('#message').val('').focus();
    });
   });
  });
  // This optional function html-encodes messages for display in the page.
  function htmlEncode(value) {
   var encodedValue = $('<div />').text(value).html();
   return encodedValue;
  }
 </script>
}

看完上述內容,你們對Asp.net 中怎么利用SignalR創建一個實時聊天應用程序有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郑州市| 丹寨县| 中方县| 唐海县| 嘉善县| 铜陵市| 浮山县| 石河子市| 汉中市| 遂溪县| 灌云县| 伽师县| 崇阳县| 成安县| 平江县| 临汾市| 鹤壁市| 银川市| 嘉荫县| 涪陵区| 平利县| 呼图壁县| 梁山县| 黄平县| 水富县| 阿克苏市| 武邑县| 青浦区| 临汾市| 高台县| 渭源县| 商城县| 永春县| 芮城县| 晴隆县| 庐江县| 壶关县| 甘泉县| 颍上县| 美姑县| 伊金霍洛旗|