namespace WebApplication2
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
app.MapSignalR();
}
}
}
4.如果SignalR组件安装完成以后,项目右键新建项,会多出SignalR这一项,新建 SignalR集线器类
namespace WebApplication2.hubs
{
[HubName("myhub")] //这个HubName很重要
public class MyHub : Hub
{
public void SendMessage(string name, string message)
{
Clients.All.receiveMessage(name, message);
}
}
}
5.新建Html页面,你没有看错,就是Html页面
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<link href="bootstrap/css/bootstrap.css" rel="stylesheet" />
<script src="Scripts/jquery-1.6.4.js"></script>
<script src="Scripts/jquery.signalR-2.2.0.js"></script>
<script src="/signalr/hubs"></script>
</head>
<body style="padding-top:40px;">
<div class="container">
<div class="jumbotron">
<ul id="message" style="height:400px;overflow-y:scroll;"></ul>
</div>
<input id="name" type="email" class="form-control" style="margin-bottom:5px;">
<input id="txt" type="email" class="form-control" style="margin-bottom:5px;">
<button id="send" type="button" class="btn btn-primary btn-block">Send</button>
</div>
<script type="text/javascript">
$(function () {
//接收数据
var con = $.connection.myhub;
con.client.receiveMessage = function (name, message) {
$("#message").append("<li><b>" + name + "</b>Say:" + message + "</li>");
}
//发送数据
$.connection.hub.start().done(function () {
$("#send").click(function () {
con.server.sendMessage($("#name").val(),$("#txt").val());
});
});
})
</script>
</body>
</html>
做到这里就大功告成了,如果没有出效果的话,我说下可能会出错的地方, var con = $.connection.myhub; 这个myhub一定要跟Hub.cs的 [HubName("myhub")] 对应。
核心代码:
JS
//接收数据
var con = $.connection.myhub;
con.client.receiveMessage = function (name, message) {
$("#message").append("<li><b>" + name + "</b>Say:" + message + "</li>");
}
//发送数据
$.connection.hub.start().done(function () {
$("#send").click(function () {
con.server.sendMessage($("#name").val(),$("#txt").val());
});
});
C#
namespace WebApplication2.hubs
{
[HubName("myhub")]
public class MyHub : Hub
{
public void SendMessage(string name, string message)
{
Clients.All.receiveMessage(name, message);
}
}
}
仔细研究下,它就是Client调用Server的方法,Server调用Client的方法。