Javascript 如何通过套接字io发送画布内容
我只想在canvas标签Javascript 如何通过套接字io发送画布内容,javascript,node.js,socket.io,html5-canvas,Javascript,Node.js,Socket.io,Html5 Canvas,我只想在canvas标签中复制一个canvas元素,并在其他浏览器中通过socket.io实时发送它,以便绘制该元素 当我在发射器中编写此代码时 socket.emit('emit_to_draw',document.getElementById('canvas')) 元素为空 如何处理?您尝试的方法是在调用emit时发送整个canvas元素。为此,必须将画布上下文转换为base64 var canvas=document.getElementById('canvas').toDataURL(
中复制一个canvas元素,并在其他浏览器中通过socket.io实时发送它,以便绘制该元素
当我在发射器中编写此代码时
socket.emit('emit_to_draw',document.getElementById('canvas'))
元素为空
如何处理?您尝试的方法是在调用emit时发送整个canvas元素。为此,必须将画布上下文转换为base64 var canvas=document.getElementById('canvas').toDataURL(); emit('emit_to_draw',canvas)
当用户收到这个canvas变量时,他必须在画布上绘制它。您尝试的方法是在调用emit时发送整个canvas元素。为此,必须将画布上下文转换为base64 var canvas=document.getElementById('canvas').toDataURL(); emit('emit_to_draw',canvas)
当用户收到这个canvas变量时,他必须在画布上绘制它。Send
dataURI
oversocket…我这样做了,但速度太慢了。我的画布是一个视频元素的副本(它是一个视频)。我为这个问题寻找了另一个解决方案:我怀疑有没有其他办法……现在你试图发送一个不起作用的元素。您可以使用toDataURL或getImageData,但它们都有自己的缺点。为什么不将视频url发送到每个客户端并使用视频元素并在本地重画呢?谢谢,这就是我所做的通过套接字发送dataURI
…我这样做了,但速度会变慢。我的画布是一个视频元素的副本(它是一个视频)。我为这个问题寻找了另一个解决方案:我怀疑有没有其他办法……现在你试图发送一个不起作用的元素。您可以使用toDataURL或getImageData,但它们都有自己的缺点。为什么不把视频url发送到每个客户端,使用视频元素并在本地重画呢?谢谢,我就是这么做的