zoukankan      html  css  js  c++  java
  • 前端多个长连接测试

    1、前端代码

    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
        <meta name="viewport"
              content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
        <title>1</title>
    
        <style>
    
        </style>
    
    
    </head>
    <body>
    
    <button id="button1">按钮1</button>
    <button id="button2">按钮2</button>
    <button id="button3">按钮3</button>
    
    <div id="logDiv">
    
    </div>
    
    <script src="js/lib/jquery-2.0.0.min.js"></script>
    <script type="text/javascript">
    
        var longPollingAjax1;
        var longPollingAjax2;
        var longPollingAjax3;
    
        $('#button1').on('click', function () {
            writeLog('button1 start');
            longPolling1();
        });
    
        $('#button2').on('click', function () {
            writeLog('button2 start');
            longPolling2();
        });
    
        $('#button3').on('click', function () {
            writeLog('button3 start');
            longPolling3();
        });
    
        function writeLog(msg) {
            var str = $('#logDiv').html();
            var str = str + "<br>" + msg;
            $('#logDiv').html(str);
        }
    
        function longPolling1() {
            if (longPollingAjax1) {
                try {
                    longPollingAjax1.abort();
                } catch (e) {
                    writeLog('longPolling1 中断请求异常');
                }
            }
            var url = 'http://192.168.40.222:8080/nweb/design/agent/test1.aspx';
            longPollingAjax1 = $.ajax({
                type: "GET",
                url: url,
                timeout: 30 * 1000,
                success: function (data) {
                    writeLog('longPolling1 请求成功' + data.value);
                    longPolling1();
                },
                error: function (xhr, textStatus, errorThrown) {
                    if (textStatus == "timeout") {
                        writeLog('longPolling1 重新发起请求');
                        longPolling1();
                    } else if (xhr.readyState === 0) {
                        writeLog('longPolling1 软电话网络无法连接或者被取消');
                        setTimeout(longPolling1, 30 * 1000);
                    } else {
                        writeLog('longPolling1 同步信息失败');
                        setTimeout(longPolling1, 30 * 1000);
                    }
                }
            });
        }
    
        function longPolling2() {
            if (longPollingAjax2) {
                try {
                    longPollingAjax2.abort();
                } catch (e) {
                    writeLog('longPolling2 中断请求异常');
                }
            }
            var url = 'http://192.168.40.222:8080/nweb/design/agent/test2.aspx';
            longPollingAjax2 = $.ajax({
                type: "GET",
                url: url,
                timeout: 30 * 1000,
                success: function (data) {
                    writeLog('longPolling2 请求成功' + data.value);
                    longPolling2();
                },
                error: function (xhr, textStatus, errorThrown) {
                    if (textStatus == "timeout") {
                        writeLog('longPolling2 重新发起请求');
                        longPolling2();
                    } else if (xhr.readyState === 0) {
                        writeLog('longPolling2 软电话网络无法连接或者被取消');
                        setTimeout(longPolling2, 30 * 1000);
                    } else {
                        writeLog('longPolling2 同步信息失败');
                        setTimeout(longPolling2, 30 * 1000);
                    }
                }
            });
        }
    
        function longPolling3() {
            if (longPollingAjax3) {
                try {
                    longPollingAjax3.abort();
                } catch (e) {
                    writeLog('longPolling3 中断请求异常');
                }
            }
            var url = 'http://192.168.40.222:8080/nweb/design/agent/test3.aspx';
            longPollingAjax3 = $.ajax({
                type: "GET",
                url: url,
                timeout: 30 * 1000,
                success: function (data) {
                    writeLog('longPolling3 请求成功' + data.value);
                    longPolling3();
                },
                error: function (xhr, textStatus, errorThrown) {
                    if (textStatus == "timeout") {
                        writeLog('longPolling3 重新发起请求');
                        longPolling3();
                    } else if (xhr.readyState === 0) {
                        writeLog('longPolling3 软电话网络无法连接或者被取消');
                        setTimeout(longPolling3, 30 * 1000);
                    } else {
                        writeLog('longPolling3 同步信息失败');
                        setTimeout(longPolling3, 30 * 1000);
                    }
                }
            });
        }
    
    </script>
    
    
    </body>
    </html>
    

      

    2、后端代码

        @ResponseBody
        @RequestMapping(value = "test1.aspx", method = RequestMethod.GET)
        public ResultInfo<String> test1(HttpServletResponse response) {
            response.setHeader("Access-Control-Allow-Origin", "*");
            ResultInfo<String> rtn = new ResultInfo<String>();
            try {
                int maxNum = 60;
                int minNum = 10;
                int randomNum = 10;//(int) (1 + Math.random() * (maxNum - minNum + 1));
    
                Thread.sleep(randomNum * 1000);
    
                rtn.setValue(String.valueOf(randomNum));
            } catch (Exception e) {
                rtn.setSuccess(false);
                rtn.setMessage(e.getMessage());
            }
            return rtn;
        }
    
        @ResponseBody
        @RequestMapping(value = "test2.aspx", method = RequestMethod.GET)
        public ResultInfo<String> test2(HttpServletResponse response) {
            response.setHeader("Access-Control-Allow-Origin", "*");
            ResultInfo<String> rtn = new ResultInfo<String>();
            try {
                int maxNum = 60;
                int minNum = 10;
                int randomNum = 15;//(int) (1 + Math.random() * (maxNum - minNum + 1));
    
                Thread.sleep(randomNum * 1000);
    
                rtn.setValue(String.valueOf(randomNum));
            } catch (Exception e) {
                rtn.setSuccess(false);
                rtn.setMessage(e.getMessage());
            }
            return rtn;
        }
    
        @ResponseBody
        @RequestMapping(value = "test3.aspx", method = RequestMethod.GET)
        public ResultInfo<String> test3(HttpServletResponse response) {
            response.setHeader("Access-Control-Allow-Origin", "*");
            ResultInfo<String> rtn = new ResultInfo<String>();
            try {
                int maxNum = 60;
                int minNum = 10;
                int randomNum = 20;//(int) (1 + Math.random() * (maxNum - minNum + 1));
    
                Thread.sleep(randomNum * 1000);
    
                rtn.setValue(String.valueOf(randomNum));
            } catch (Exception e) {
                rtn.setSuccess(false);
                rtn.setMessage(e.getMessage());
            }
            return rtn;
        }

    3、测试结果

     

    4、总结:

        可以有多个长连接同时存在。

  • 相关阅读:
    android学习笔记07(activity跳转,通信,及发短信)
    android学习笔记05(RadioGroup,CheckBox,Toast)
    义无返顾
    android学习笔记01(LinearLayout)
    linux远程桌面学习
    android学习笔记08(activity通信的一个实例乘法计算器)
    android学习笔记12(ProgressBar进度条初级学习)
    android学习笔记06(第一个程序)
    android学习笔记03(RelativeLayout)
    poj2886 Who Gets the Most Candies?
  • 原文地址:https://www.cnblogs.com/sshoub/p/6272540.html
Copyright © 2011-2022 走看看