亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

第三章SignalR在線聊天例子

2019-11-17 02:02:36
字體:
來源:轉載
供稿:網友

第三章SignalR在線聊天例子

Posted on 2015-03-20 21:51 珠海華仔 閱讀(...) 評論(...) 編輯 收藏

第三章SignalR在線聊天例子

本教程展示了如何使用SignalR2.0構建一個基于瀏覽器的聊天室程序。你將把SignalR庫添加到一個空的asp.net Web應用程序中,創建用于發送消息到客戶端的集線器(Hubs)類,創建一個Html頁面讓用戶在該頁面上發送和接收聊天信息。對于如何在MVC5環境中創建這個聊天室程序,請參閱Getting Started with SignalR 2.0 and MVC 5。

SignalR是一個開源的.Net庫,用于構建需要實時用戶交互或實時數據更新的Web應用程序。比如社交網站應用、多用戶在線游戲、商務協作、新聞、天氣、金融或更新應用的程序。以上通常被稱為----實時應用程序。

SignalR簡化構建實時應用程序的過程。它包含一個Asp.net服務器庫和一個javaScript客戶端庫,使其更容易管理客戶端到服務器端的連接并推送內容到客戶端讓其更新。您可以將SignalR庫添加到現有的Asp.net應用程序已實現實時功能。

本教程將演示SignalR是如何開發的:

1) 添加Signal庫到Asp.net Web 應用程序。

2) 建立一個集線器(Hubs)類來推送更新內容到客戶端。

3) 建立一個.Net開放Web 接口(OWIN)啟動類來配置應用程序

4) 雜網頁中使用SignalR jQuery庫發送和顯示更新消息

下面的屏幕截圖顯示了在瀏覽器運行中的聊天應用程序,每個新加入聊天室的用戶都可以隨意發言。

1.設置項目:

本節說明如何使用VS2013及SignalR2.0庫來創建一個空的Asp.Net Web應用程序,并向其添加SignalR,使它實現實時聊天室的功能。

1) 在VS2013中創建一個新的Web應用程序。

2) 在新的Asp.Net項目窗口中,選擇空項目并且確定創建

  

3) 在解決方案資源管理器中,右擊項目,選擇添加----新建項,選擇SignalR集線器類(v2),命名為ChatHus.cs并添加,如下圖:

這一步將創建ChatHub類,并將一組SignalR腳本和程序集引用添加到項目中。

注意:您還可以通過NuGet來添加SignalR到項目中,通過打開工具----庫軟件包管理器----包管理器控制臺,并運行一個明命令:install – package Microsoft.AspNet.SignalR

如果您使用包管理器控制臺來添加SignalR,請在添加后再執行創建ChatHub類這一步。

4) 在解決方案資源管理器中,展開腳本文件夾,可以看到項目已經添加jQuery已經SignalR的JS引用。

5)編輯你的ChatHub文件,刪除Hello方法并且添加Send方法,如下面代碼:

using System;

using System.Web;

using Microsoft.AspNet.SignalR;

namespace SignalRChat

{

public class ChatHub : Hub

{

public void Send(string name, string message)

{

// Call the broadcastMessage method to update clients.

Clients.All.broadcastMessage(name, message);

}

}

}

6)在解決方案資源管理器中,右擊項目,然后添加----新建項----OWIN啟動類,將類命名為Startup并添加。

7)在啟動類的配置方法中添加SignalR的映射,如下面的代碼:

using Microsoft.Owin;

using Owin;

[assembly: OwinStartup(typeof(SignalRChat.Startup))]

namespace SignalRChat

{

public class Startup

{

public void Configuration(IAppBuilder app)

{

// 有關如何配置應用程序的詳細信息,

// 請訪問http://go.microsoft.com/fwlink/?LinkID=316888

app.MapSignalR();

}

}

}

8)在解決方案資源管理器中,右鍵單擊該項目,然后點擊添加----新建項----HTML頁面,命名為index.html并添加。

9)用下面的代碼替換掉Html的:

<!DOCTYPE html>

<html>

<head>

<title>SignalR Simple Chat</title>

<style type="text/CSS">

.container {

background-color: #99CCFF;

border: thick solid #808080;

padding: 20px;

margin: 20px;

}

</style>

</head>

<body>

<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>

<!--Script references. -->

<!--Reference the jQuery library. -->

<script src="Scripts/jquery-1.6.4.min.js" ></script>

<!--Reference the SignalR library. -->

<script src="Scripts/jquery.signalR-2.0.2.min.js"></script>

<!--Reference the autogenerated SignalR hub script. -->

<script src="signalr/hubs"></script>

<!--Add script to update the page and send messages.-->

<script type="text/Javascript">

$(function () {

// Declare a PRoxy to reference the hub.

var chat = $.connection.chatHub;

// Create a function that the hub can call to broadcast messages.

chat.client.broadcastMessage = function (name, message) {

// Html encode display name and message.

var encodedName = $('<div />').text(name).html();

var encodedMsg = $('<div />').text(message).html();

// Add the message to the page.

$('#discussion').append('<li><strong>' + encodedName

+ '</strong>:&nbsp;&nbsp;' + encodedMsg + '</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();

// Start the connection.

$.connection.hub.start().done(function () {

$('#sendmessage').click(function () {

// Call the Send method on the hub.

chat.server.send($('#displayname').val(), $('#message').val());

// Clear text box and reset focus for next comment.

$('#message').val('').focus();

});

});

});

</script>

</body>

</html>

注意:如果你使用包管理器來安裝了SignalR,請核對腳本目錄中的SignalR腳本文件名與上面Html代碼中所引用的是否一致,如下圖:

11)保存全部項

2.運行示例:

1)按下F5,在調試模式下運行該項目,如果一切正常,Html會在瀏覽器中打開并提示一個對話框。

2)輸入用戶名并確定。

3)復制這個瀏覽器中的URL,打開一個新的瀏覽器實例,在另外一個瀏覽器中,輸入一個新用戶名。

4)在每個瀏覽器實例中添加評論并且發送,評論將被發送到所有瀏覽器的頁面中。

注意:這個簡單的聊天室沒有在服務器上維護一個聊天上下文(舊的數據),所有發送的評論將實時廣播給打開了頁面的所有瀏覽器,所以新加入的用戶無法看到以前的歷史記錄。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美大秀在线观看| 久久久91精品国产一区不卡| 欧美人与性动交| 91热精品视频| 国产精品久久久久秋霞鲁丝| 中文欧美在线视频| 欧美制服第一页| 日韩av免费在线看| 久久精品国产一区二区三区| 茄子视频成人在线| 亚洲va国产va天堂va久久| 亚洲伊人一本大道中文字幕| 在线日韩第一页| 亚洲aa在线观看| 日韩中文字幕免费看| 亚洲美女喷白浆| 久久99精品久久久久久噜噜| 亚洲iv一区二区三区| 亚洲日韩中文字幕| 国产精品嫩草影院一区二区| 久久精品美女视频网站| 久久久久久久久久久久av| 国产亚洲精品美女久久久久| 国产98色在线| 九九九久久国产免费| 日韩人体视频一二区| 久久这里有精品视频| 日本精品久久久| 国产精品高清在线| 成人激情黄色网| 欧美亚洲视频一区二区| 大胆人体色综合| 亚洲女人天堂av| 91精品久久久久久久久不口人| 国产v综合ⅴ日韩v欧美大片| 欧洲成人在线视频| 在线播放精品一区二区三区| 欧美不卡视频一区发布| 国产精品久久久久久久久久小说| 中文字幕亚洲自拍| 中国人与牲禽动交精品| 国产91在线高潮白浆在线观看| www日韩中文字幕在线看| 亚洲欧美国产一本综合首页| 欧美激情精品久久久久久黑人| 亚洲美女av网站| 日韩中文字幕欧美| 国产日韩换脸av一区在线观看| 欧美午夜无遮挡| 亚州av一区二区| 97久久精品人人澡人人爽缅北| 国产精品入口尤物| 国产日韩换脸av一区在线观看| 国产精品一区二区三区成人| 日韩av在线一区| 欧美日韩国产色| 97精品国产97久久久久久| 日韩在线欧美在线国产在线| 粉嫩av一区二区三区免费野| 国外日韩电影在线观看| 久久国产色av| 亚洲另类图片色| 88国产精品欧美一区二区三区| 亚洲娇小xxxx欧美娇小| 亚洲欧美制服另类日韩| 亚洲欧美日韩中文在线| 欧美洲成人男女午夜视频| 日韩一区二区久久久| 亚洲乱码一区av黑人高潮| 欧美激情第6页| 欧美国产日韩二区| 国产精品视频免费观看www| 最近2019免费中文字幕视频三| 欧美性猛交视频| 国产亚洲精品久久久久动| 欧美成人一区在线| 日韩精品中文在线观看| 日韩中文字幕欧美| 亚洲精品视频免费| 亚洲激情 国产| 亚洲女成人图区| 欧美高清在线播放| 亚洲xxxxx性| 亚洲第一网站男人都懂| 日韩精品欧美国产精品忘忧草| 色琪琪综合男人的天堂aⅴ视频| 亚洲自拍高清视频网站| 日韩欧美国产网站| 成人免费视频xnxx.com| 国产精品成人播放| 国产精品xxxxx| 黑人巨大精品欧美一区二区一视频| 欧美成在线观看| 91综合免费在线| 夜夜嗨av色一区二区不卡| 久久久久九九九九| 亚洲 日韩 国产第一| 欧美性xxxxx极品| 亚洲欧美日韩爽爽影院| 欧美成人精品不卡视频在线观看| 久久久中文字幕| 久久精品国产视频| 91欧美日韩一区| 国产精品第2页| 久久影视三级福利片| 亚洲精品久久久久国产| 亚洲黄页视频免费观看| 亚洲人成人99网站| 日韩欧美在线免费观看| 欧美国产日韩一区二区在线观看| 91久久精品在线| 91在线看www| 亚洲欧美制服中文字幕| 日韩精品在线免费观看| 97精品伊人久久久大香线蕉| 国产91久久婷婷一区二区| 国产在线精品一区免费香蕉| 日韩成人在线视频观看| 欧美日韩国产成人在线观看| 久久久久久久久久久网站| 欧美伊久线香蕉线新在线| 欧美成人精品在线| 国产欧美一区二区三区在线| 中文欧美在线视频| 日韩电影中文字幕av| 亚洲成人精品在线| 91视频免费网站| 亚洲 日韩 国产第一| 日韩精品小视频| 在线播放日韩av| 午夜精品一区二区三区在线视| 国产欧美在线看| 国产精品久久视频| 欧洲成人性视频| 亚洲成av人乱码色午夜| 日韩久久免费视频| 欧美性猛交xxxx乱大交| xxx欧美精品| 久久久久久久999精品视频| 中文字幕日韩高清| 国产欧美一区二区三区在线看| 国内精品视频一区| 成人免费网站在线看| 亚洲成人激情图| 国产精品久久久久久久电影| 日韩va亚洲va欧洲va国产| 亚洲一区制服诱惑| 亚洲电影免费观看高清完整版| 欧美日韩中文字幕日韩欧美| 亚洲经典中文字幕| 91福利视频网| 97精品一区二区三区| 日韩欧美福利视频| 中文字幕亚洲欧美一区二区三区| 欧美有码在线观看| 亚洲精品丝袜日韩| 78m国产成人精品视频| 亚洲欧洲激情在线| 亚洲成人激情在线| 91精品在线观看视频| 国产精品久久久久久久久久三级| 欧美高清不卡在线| 欧美成人中文字幕在线| 精品国产精品三级精品av网址|