SignalR2 永久連線簡單例項1
1.啟動路由註冊
[assembly: OwinStartupAttribute(typeof(SignalRDemo1.Startup))]
namespace SignalRDemo1
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
//註冊伺服器端相應地址
app.Map("/realtime/echo", map =>
{
map.UseCors(CorsOptions.AllowAll);
map.RunSignalR<EchoConnection>();
});
}
}
}
2.封裝伺服器端相應
/// <summary>
/// 建立永久連線
/// Represents a connection between client and server.
/// </summary>
public class EchoConnection : PersistentConnection
{
private static int _connections = 0;
/// <summary>
/// 連線建立
/// </summary>
protected override async Task OnConnected(IRequest request, string connectionID)
{
Interlocked.Increment(ref _connections);
await Connection.Send(connectionID, "雙向連線成功,連線ID:" + connectionID);
//廣播訊息
await Connection.Broadcast("新的連線加入,連線ID:" + connectionID + ",已有連線數:" + _connections);
}
/// <summary>
/// 連線斷開
/// </summary>
protected override Task OnDisconnected(IRequest request, string connectionId, bool stopCalled)
{
Interlocked.Decrement(ref _connections);
return Connection.Broadcast(connectionId + "退出連線,已有連線數:" + _connections);
}
/// <summary>
/// 接受到訊息
/// </summary>
protected override Task OnReceived(IRequest request, string connectionId, string data)
{
var message = connectionId + "傳送內容>>" + data;
return Connection.Broadcast(message);
}
}
3.封裝客戶端相應
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.0.js"></script>
</head>
<body>
<div>
<h1>Echo service</h1>
<div>
<input type="text" id="text" />
<button id="send">Send</button>
</div>
<script>
var connection = $.connection("/realtime/echo");
connection.logging = true;
//客戶端接收訊息
connection.received(function (data) {
$(document.body).append(data+"<br/>");
});
//連線錯誤處理
connection.error(function (err) {
alert('與伺服器連線報錯:'+err.message);
});
//連線成功
connection.start().done(function () {
$('#send').click(function () {
var val = $('#text').val();
//向伺服器端傳送訊息
connection.send(val);
});
});
</script>
</div>
</body>
</html>
相關文章
- spring4簡單例項(1)Spring單例
- 例項解析外連線 內連線 自連線 全連線
- websocket簡單例項Web單例
- 連線RAC資料庫中單個例項(一)資料庫
- 連線RAC資料庫中單個例項(二)資料庫
- 連線雲MariaDB例項
- 多個mapreduce連線例項
- c++ 連線mysql例項C++MySql
- 本地SSH方式連線例項
- css3線性漸變簡單程式碼例項CSSS3
- 2.4.7 Step 6: 連線到例項
- Luat例項教程:tcp短連線TCP
- opengl簡單入門例項
- javascript事件冒泡簡單例項JavaScript事件單例
- Spark 簡單例項(基本操作)Spark單例
- javascript this用法和簡單例項JavaScript單例
- js選項卡簡單程式碼例項JS
- javascript陣列連線程式碼例項JavaScript陣列線程
- 從客戶端連線ASM例項客戶端ASM
- EventBus詳解及簡單例項單例
- $.ajax()函式用法簡單例項函式單例
- c++類的簡單例項C++單例
- 策略模式與簡單java例項模式Java
- corba程式設計簡單例項ORB程式設計單例
- sql 連線查詢例項(left join)三表連線查詢SQL
- jQuery實現的簡單投票簡單程式碼例項jQuery
- JDBC連線自定義sqlserver資料庫例項名(多個例項)JDBCSQLServer資料庫
- jdbc根據例項名 連線 sql serverJDBCSQLServer
- jQuery表單驗證簡單程式碼例項jQuery
- ElasticSearch客戶端簡單操作例項Elasticsearch客戶端
- Java的Socket通訊簡單例項Java單例
- jQuery實現的動畫簡單例項jQuery動畫單例
- js map集合簡單程式碼例項JS
- javascript閉包簡單程式碼例項JavaScript
- javascript作用域簡單例項程式碼JavaScript單例
- mysql 儲存過程簡單例項MySql儲存過程單例
- JSON簡單格式程式碼例項JSON
- JavaScript 動畫效果簡單例項程式碼JavaScript動畫單例