2017-06-14 82 views
0

我目前正在研究一个在线小说(一个人做绘画,其他人不得不猜测它是什么)。我怎样才能optimaly通过websocket发送图纸?

当前我发送我的整个图像从“drawup”(在画布上)base64上的“mouseup”DOM事件到服务器,我发回给猜测者在相同的格式,我的问题是,它似乎相当沉重,我不知道如何有更轻的有效载荷。

$('#canvas').on('mouseup touchend', function() { 
    mouse.down = false; 

    // My problem is sending canvas.toDataURL() every time 
    update_canvas(canvas.toDataURL()); 
}); 

// I use this function inside ActionCable so this.perform will send the data to my channel 
var update_canvas = function(data_url) { 
    this.perform('update_canvas', {data_url: data_url}); 
}, 

您是否有更好的方式发送我的图像数据?

+0

你看过更好的方法吗?这里可能涉及的太多。你是否也用这种方法测量了网络延迟? –

回答

0

您可以发送鼠标位置列表或增量更改画布,即只发送使用第二个画布的新图形。

+0

这是一个很好的方法。一个基本的实现可以在这里找到(https://stackoverflow.com/a/43705140/3702797) – Kaiido

0

那么我认为最好的办法是给你绘制的坐标,我已经实现了类似这样的事情,U爱泰克HV看看 http://connectboard.herokuapp.com/ 两种打开它,或者更多不同的浏览器或电脑绘制。