php使用webSocket实现Echarts长连接自动刷新的解决方案(1):前端获取后端JSON数据

简介: php使用webSocket实现Echarts长连接自动刷新的解决方案(1):前端获取后端JSON数据
+关注继续查看

image

image

项目需求

Echarts图表自动获取服务器端推送的数据,实现图表的自动渲染更新;


前端代码

引入JS包

   <script src="js/jquery-3.3.1.min.js"></script>
    <script src="js/echarts.min.js"></script>

HTML代码

<div id="main" style="width: 1000px;height: 600px;"></div>


JS代码

webSocket连接函数封装;

//webSocket连接;
    function WebSocketServer() {
        var wsClient = null; //WS客户端对象

        //判断是否支持WebSocket
        if (!window.WebSocket) {
            window.WebSocket = window.MozWebSocket;
        }

        if (window.WebSocket) {
            wsClient = new WebSocket('ws://127.0.0.1:9090');
            wsClient.onmessage = function (e) {
                //console.log(e.data);
                //图表渲染数据格式处理;
                var newData = JSON.parse(e.data);
                var dataName = [], dataList = [];
                for (var i = 0; i < newData.length; i++) {
                    dataName.push(newData[i].vname);
                    dataList.push(newData[i].vdata);
                }
                //console.log(newData[0].vdata);
                //渲染图表;
                getLine(dataName, dataList);
            };

            //连接服务器;
            wsClient.onopen = function () {
                console.log('WS客户端已经成功连接到服务器上');
                wsClient.send('getPeerInfo'); //向WS服务器发送一个消息
            };

            //断开服务器;
            wsClient.onclose = function (e) {
                console.info("WS客户端到服务器的连接已经断开" + JSON.stringify(e));
            };
        } else {
            alert("你的浏览器不支持 WebSocket!");
        }
    }


Echarts图表函数封装

  /*Echarts*/
    function getLine(dataName, dataList) {
        var myChart = echarts.init(document.getElementById('main'));
        var option = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross',
                    label: {
                        backgroundColor: '#6a7985'
                    }
                }
            },
            xAxis: {
                type: 'category',
                boundaryGap: false,
                data: dataName
            },
            yAxis: {
                type: 'value'
            },
            series: [{
                data: dataList,
                type: 'line'
            }]
        };

        myChart.setOption(option);
        window.addEventListener("resize", function () {
            myChart.resize();
        });
    }


Done!

相关文章
|
18天前
|
JSON 前端开发 Java
Java实现树的格式化打印以及返回前端json树
Java实现树的格式化打印以及返回前端json树
17 0
|
18天前
|
JSON 前端开发 数据格式
ajax请求解析json数据渲染在前端界面
ajax请求解析json数据渲染在前端界面
13 0
|
23天前
|
JSON 前端开发 数据格式
【前端统计图】echart多条折线图ajax请求json数据
【前端统计图】echart多条折线图ajax请求json数据
12 0
|
23天前
|
JSON 前端开发 数据格式
【前端统计图】echart折线图ajax请求json数据
【前端统计图】echart折线图ajax请求json数据
13 0
|
1月前
|
JSON 前端开发 数据格式
前端传json对象后台接收
前端传json对象后台接收
|
4月前
|
JSON 前端开发 数据格式
前端——向json中添加或删除对象、属性
前端——向json中添加或删除对象、属性
|
4月前
|
JSON 前端开发 数据格式
前端学习笔记202307学习笔记第六十天-json server的介绍和服务搭建1
前端学习笔记202307学习笔记第六十天-json server的介绍和服务搭建1
37 0
|
4月前
|
JSON 前端开发 数据格式
前端学习笔记202306学习笔记第三十七天-js-认识json数据1
前端学习笔记202306学习笔记第三十七天-js-认识json数据1
31 0
|
4月前
|
JSON 前端开发 数据格式
前端学习笔记202306学习笔记第三十七天-js-认识json数据2
前端学习笔记202306学习笔记第三十七天-js-认识json数据2
32 0
|
4月前
|
JSON 前端开发 数据格式
前端学习笔记202306学习笔记第三十七天-js-认识json数据3
前端学习笔记202306学习笔记第三十七天-js-认识json数据3
28 0
相关产品
云迁移中心
推荐文章
更多