使用websocket将客户端服务器数据进行交互,并在echarts折现图动态显示(一)

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>echarts最终版</title>
    <script type="text/javascript" src="js/echarts.js"></script>
    <script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
    <div id="main" style="width:600px;height:400px;"></div>
    <button οnclick="addData()">点我加载数据更新</button>
    <div id="test"></div>
</body>
<script type="text/javascript">
    //var date = new Date();
    //document.writeln( date.toLocaleTimeString() );
    //document.writeln( date.getSeconds() );
    var myChart = echarts.init(document.getElementById('main'));
    myChart.showLoading();
    var options = {
            //定义一个标题
            title:{
                text:'PH值'
            },
            legend:{
                data:['时间']
            },
            //X轴设置
            xAxis:{
                name :'时间',
                data: (function (){
                        var res = [];
                        var len = 10;
                        while (len--) {
                            var now = (new Date()).toLocaleTimeString().replace(/^\D*/,'');
                            res.push(now);
                        }
                        return res;
                    })()
            },
            //y轴不设置意味着y轴的数值随传进来参数最值自动给出波动范围
            yAxis:{

            },
            //name=legend.data的时候才能显示图例
            series:[{
                name:'时间',
                type:'line',
                data:(function(){
                        var res = [];
                        var len = 10;
                        while (len--) {
                            res.push(Math.round(Math.random() * 100));
                        }
                      return res;
                    })()
            }]

        };
    myChart.setOption(options,true);

    //这里有两个点要重点注意下
    //1.在addData函数内需要先使用myChart.getOption()来获取已生成折线图的配置参数信息
    //2.在对原data数组进行数据的增减时,需要在series和xAxis后加上序列下标
    function addData() {
        //myChart.setOption(options,true);
        //myChart.clear(); 
        var myChart = echarts.init(document.getElementById('main'));
        var option = myChart.getOption();
        axisData = (new Date()).toLocaleTimeString().replace(/^\D*/,'');
        option.series[0].data.shift();                 
        option.series[0].data.push(Math.random()*100);
        option.xAxis[0].data.shift();
        option.xAxis[0].data.push(axisData);
        myChart.setOption(option);
        myChart.hideLoading();
        }
            
</script>
</html>



知识点积累:

1.js的Data函数与Math函数的用法

2.对echarts中数据更新的解决办法(包括以函数形式返回数组传入data,以及通过option.series方法对原图表数据进行更改)

注意事项:

1.echarts开发中经常遇到更改参数导致图表显示不出,其原因多数是因为更改了原先的数据格式导致的

2.最后在函数中对options中的数据进行更替时,需要先用getOption方法得到原先图表的option数据,再对其进行操作

3.最后在函数中对options中的数据进行更替时,不要遗漏了series后的数组下标


### 回答1: WebSocket 是一种基于 TCP 协议的网络协议,它支持双向通信,可以在客户端和服务端之间实时地传输数据。在 WebSocket 中,客户端和服务端之间的通信是基于消息的,这意味着它可以传输各种类型的数据,包括文本、二进制数据等。 要在 WebSocket 客户端和服务端之间进行交互,可以采用以下步骤: 1. 在服务端上启动 WebSocket 服务器,并监听客户端连接的请求。 2. 在客户端上创建 WebSocket 对象,并连接到服务端的 WebSocket 服务器。 3. 在客户端上选择要传输的片,并将其转换为 Base64 编码格式。 4. 将 Base64 编码格式的数据封装成 WebSocket 消息,并发送给服务端。 5. 在服务端上接收到客户端发送的 WebSocket 消息后,解析消息中的数据,并将其保存到文件系统中。 6. 在服务端上将保存在文件系统中的数据转换为 Base64 编码格式,并封装成 WebSocket 消息,发送给客户端。 7. 在客户端上接收到服务端发送的 WebSocket 消息后,解析消息中的数据,并将其显示在客户端上。 需要注意的是,在传输大量的数据时,WebSocket 可能会产生较大的带宽消耗,因此建议在传输之前对进行压缩处理,以减小数据量。同时,为了保证传输的安全性,可以使用 SSL/TLS 协议来保护 WebSocket 连接。 ### 回答2: WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端和服务端之间的实时数据传输。在交互方面,WebSocket客户端和服务端可以通过以下步骤进行交互: 1. WebSocket客户端与服务端建立连接:WebSocket客户端通过HTTP请求与服务端建立WebSocket连接。服务端会返回一个握手响应,在响应头中包含必要的信息验证该连接。 2. 客户端发送请求:客户端在建立好连接后,可以通过WebSocket发送请求给服务端。在交互中,可以使用消息的方式向服务端传递片相关的请求,如请求某个片资源。 3. 服务端处理请求:服务端接收到客户端的请求后,对其进行解析和处理。根据请求中的参数,服务端可以读取指定的片资源。 4. 服务端响应请求:服务端会将片资源以二进制数据的形式返回给客户端。可以将数据作为WebSocket消息的一部分,或者通过WebSocket连接发送片路径等信息,使客户端能够通过该路径获取片资源。 5. 客户端处理响应:客户端接收到服务端返回的数据后,解析数据进行处理。可以将二进制数据转换为片展示在界面上,或者通过提取片路径等信息,通过网络请求获取片资源后展示。 6. 数据传输完毕,关闭连接:当交互完成后,可以选择手动关闭WebSocket连接,释放资源。 WebSocket客户端和服务端的交互通过实时双向通信,可以实现快速传输和实时展示片,提供了更好的用户体验和交互性。 ### 回答3: WebSocket客户端和服务端可以通过传输片来实现交互。在WebSocket的通信过程中,客户端可以发送数据给服务端,服务端也可以将数据发送给客户端。 首先,客户端可以通过JavaScript的WebSocket API连接到服务端。然后,客户端可以选择一个片文件并将其转换为二进制数据。接着,客户端可以将二进制数据发送给服务端,使用WebSocket的send()方法将数据传输给服务端。 服务端在接收到数据后,可以将其保存到服务器的文件系统中,或者进行其他处理。服务端可以使用任何服务器端的编程语言来处理WebSocket消息,并根据需要进行解码和处理接收到的数据。 对于服务端发送片给客户端交互,服务端可以将数据转换为二进制数据,并使用WebSocket的send()方法将其发送给客户端客户端收到数据后,可以将其转换为片格式,并在页面上显示出来。 需要注意的是,在传输大量数据时,可能需要对数据进行压缩和数据包分割,以避免网络传输过程中的性能问题和数据丢失或损坏。 综上所述,WebSocket客户端和服务端可以通过传输数据来实现交互客户端可以将数据发送给服务端,而服务端也可以将数据发送给客户端。这种交互可以通过WebSocket的API和相关的编程语言和技术来实现。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值