美文网首页Java 杂谈我爱编程
2018-12-24 死亡学习日记

2018-12-24 死亡学习日记

作者: 九草 | 来源:发表于2018-12-24 17:42 被阅读118次

好几个小时前,拿到任务分配,实现一个交互。

任务是这样的:A,B两个页面,都是独立运行展示出来的。

老大给了我两个思路,我思考后总结为:

1.A页面点击后,后台改变一个状态码,B页面一定时间循环读取后台对应数据,某一次循环中发现状态码被改变,页面效果显示。

2.用长链接实现实时交互,就是说A页面点击按钮1后发送数据给B页面,B页面接受数据后展示效果.


思路1

现在呢,感脚思路1很好实现,因为是要在钉钉上面做这玩意,然后我打开钉钉开发文档:

dd.httpRequest

向指定服务器发起一个跨域 http(s) 请求。

加一段官方示例代码:

dd.httpRequest({
  url: 'http://httpbin.org/post',
  method: 'POST',
  data: {
    from: '钉钉',
    production: 'Dingtalk',
  },
  dataType: 'json',
  success: function(res) {
    dd.alert({content: 'success'});
  },
  fail: function(res) {
    dd.alert({content: 'fail'});
  },
  complete: function(res) {
    dd.hideLoading();
    dd.alert({content: 'complete'});
  }
});

A页面用这个改变状态码,B用这个方法获取状态码,但是B要用一个定时循环函数:

setTimeout(function () {
     //要延时执行的代码
    }, 1000) //延迟时间 这里是1秒

使用递归来决定函数的循环执行。

赶脚嘞个方法有点不太合适,那就再看看另外的一个思路。


思路2

呐,因为是新手,这个长链接是个啥玩意不知道,所以现在一步步慢慢来。
先去搜索了Java Web 的长连接,说是可以一定时间内一直建立连接,可以交互数据,嗯,看到了个例子说是网页聊天一样,反正没看太懂。就知道了有个WebScoket,但是不会吖。
然后,又搜索了一下简单demo,找到了一个。效果图如下:

demo原文地址

自己跟着实现了一遍,但是并没有多加深入理解,只是稍微改了一下能够实现两个不同的页面完成demo的效果。


现在先去搜索一下小程序里面的webscoket看看。

经过一番周折,发现之前看的demo,完全可以套用在钉钉移动端上面,业务逻辑也差不多,基本效果已经可以实现了。


//ws的JS
var stompClient = null;
    window.onload=function (){
         var socket = new SockJS('/endpointSang');
         stompClient = Stomp.over(socket);
         stompClient.connect({}, function (frame) {
             console.log('Connected:' + frame);
             stompClient.subscribe('/topic/getResponse', function (response) {
                 showResponse(JSON.parse(response.body).responseMessage);
             })
         });
    }
    function sendName() {
        var name = "小伙子,泥中了5000W,快醒来去领奖";
        console.log('name:' + name);
        stompClient.send("/welcome", {}, JSON.stringify({'name': name}));
    }
//ws2的JS
 var stompClient = null;
    window.onload=function (){
     var socket = new SockJS('/endpointSang');
        stompClient = Stomp.over(socket);
        stompClient.connect({}, function (frame) {
            console.log('Connected:' + frame);
            stompClient.subscribe('/topic/getResponse', function (response) {
                showResponse(JSON.parse(response.body).responseMessage);
            })
        });
   }
    function disconnect() {
        if (stompClient != null) {
            stompClient.disconnect();
        }
        setConnected(false);
        console.log('Disconnected');
    }

    function showResponse(message) {
        alert(message);
    }

今天就差不多了,明天在钉钉上把它弄出来。

GAME OVER。

相关文章

网友评论

    本文标题:2018-12-24 死亡学习日记

    本文链接:https://www.haomeiwen.com/subject/ahlzkqtx.html