zoukankan      html  css  js  c++  java
  • 消息推送

    再做温湿度监测的时候,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>

  • 相关阅读:
    探索需求17
    周总结10
    当后端返回的数据格式出问题时
    关于路由的摘记
    element-ui之table——expand,filter和sortable相关方法事件属性等整理
    CSS3 [attribute*=value] 选择器
    判断变量是否为对象(摘自JavaScript入门教程)
    获得去重的数组(摘)
    css的calc() 函数如width: calc(100%
    JavaScript 中 call()、apply()、bind() 的用法(搬运)
  • 原文地址:https://www.cnblogs.com/spectre/p/2988788.html
Copyright © 2011-2022 走看看