消息推送

再做温湿度监测的时候,b/s架构的。 用户在web里浏览网页怎么才能实时的获取获取最新的数据。  难道说要 在服务器上做个消息采集程序然后把数据往数据库插 然后客户端的网页每秒都访问数据库? 这样做理论上是可行的,不过,我不想这么弄。   前段时间听说有个消息推送的东西。就是服务端把数据推给客户端,而不是 每次都是客户端主动的去要数据。  具体怎么实现,我现在就去研究去。

mvc中 AsyncController  继承这个基类

public void GetTimeAsync()
{
String content =Request.Params["content"];


//告诉.NET接下来将进行一个异步操作
AsyncManager.OutstandingOperations.Increment();
//订阅计时器的Elapsed事件
if (content != "-1")
{
AsyncManager.Parameters["data"] = content;
//告诉ASP.NET异步操作已完成,进行GetTimeCompleted方法的调用
AsyncManager.OutstandingOperations.Decrement();
}

}
public ActionResult GetTimeCompleted(string data)
{
return Json(new { date = data + " Welecom " }, JsonRequestBehavior.AllowGet);
}

页面代码

$(function () {
function wait() {
$.ajax({
url: "Tem/GetTime",
type: "post",
datatype: "json",
data: { content: "-1" },
success: function (data, status) {
var result = $("#divResult");
result.html(result.html() + "<br/>" + data.date);
//服务器返回消息,再次立连接
wait();
},
global: false
});
}

//初始化连接
wait();

$("#btnSend").click(function () {
$.ajax({
url: "Tem/GetTime",
type: "post",
datatype: "json",
data: { content: "1231312312312" },
success: function (data, status) {
var result = $("#divResult");
result.html(result.html() + "<br/>" + data.date);
//服务器返回消息,再次立连接

},
global: false
});
});
});
</script>

原文地址:https://www.cnblogs.com/spectre/p/2988788.html