如何通过 websocket 优化发送绘图?

Posted

技术标签:

【中文标题】如何通过 websocket 优化发送绘图?【英文标题】:How can i optimaly send a drawing via websocket? 【发布时间】:2017-06-14 08:25:21 【问题描述】:

我目前正在制作一个在线图画书(一个人画图,其他人必须猜它是什么)。

目前我正在将我的整个图像从抽屉(在画布中)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);
,

你有更好的方法来发送我的图像数据吗?

【问题讨论】:

您有没有找到更好的方法来做到这一点?其中可能太多了,这里就不一一赘述了。您是否也使用这种方法测量过网络延迟? 【参考方案1】:

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

【讨论】:

这是一个好方法。一个基本的实现可以在here找到【参考方案2】:

嗯,我认为最好的方法是发送你正在绘制的坐标,我已经实现了类似的东西,你 cn hv 看看 http://connectboard.herokuapp.com/ 在两个或多个不同的浏览器或计算机中打开它并绘制。

【讨论】:

以上是关于如何通过 websocket 优化发送绘图?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 WebSockets 响应 Web 服务请求

如何使用 Rails 通过 Web Sockets 发送二进制文件

微信小程序webSocket多人通信案例

如何使用带有Rust的Actix Web和WebSockets发送服务器事件?

如何检测从 Websocket 服务器发送的消息

如何通过 websockets 发送结构