Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何停止向websocket发送数据的函数,并通过单击按钮交替切换到另一个函数_Javascript_Function_Websocket - Fatal编程技术网

Javascript 如何停止向websocket发送数据的函数,并通过单击按钮交替切换到另一个函数

Javascript 如何停止向websocket发送数据的函数,并通过单击按钮交替切换到另一个函数,javascript,function,websocket,Javascript,Function,Websocket,我将数据馈送到websocket,并使用以下方法将其发送到服务器: function sendData(source, images) { var data = { data_source: this.source, img: this.images }; var Data = JSON.stringify({ type:'image', data: data }); socket.send(Data); }

我将数据馈送到websocket,并使用以下方法将其发送到服务器:

function sendData(source, images) {
    var data = {
            data_source: this.source,
            img: this.images
        };
    var Data = JSON.stringify({ type:'image', data: data });
    socket.send(Data);
}

function source1() {
    var source = camera1;
    var images = feed1;
    sendData(this.source, this.images);
}

function source2() {
    var source = camera2;
    var images = feed2;
    sendData(this.source, this.images);
}

button1.addEventListener('click', source1, false);
button2.addEventListener('click', source2, false);
当我单击按钮2并交替单击开关时,如何停止source1馈送

在我当前的实践中,当我单击按钮2时,函数source1仍在运行。它会导致另一端渲染的图像在两个图像源之间翻转(可能不是正确的单词,我的英语不好)。最糟糕的是,当我在两个按钮之间切换点击次数时,它完全崩溃了

我如何解决这个问题


谢谢你,

我认为问题出在收件人方面。Websockets通过TCP运行,TCP有一个内部缓冲区,用于缓冲正在发送的流数据。无论您如何滥用发送,它们都将以正确的顺序到达,并且不会出现错误。

我在另一端呈现图像的代码只是'image.src=msg.data.img'。如何删除以前收到的数据。看起来像是缓存图像,因为它停止移动。但是所有来源的图像切换太快了,这是不对的。当我检测到数据传输到服务器时,它仍然交替地从两个源接收数据。