【发布时间】:2014-07-06 18:03:01
【问题描述】:
我正在使用 socket.io 引擎来跟踪浏览器中的鼠标指针移动并将其发送到多个 Web 浏览器。在这里,我得到鼠标指针的 x、y 坐标,然后使用 socket.io 引擎发送它。
socket.emit('mouse_position', {mx : x, my : y});
之后我通过以下代码从应用程序中获取相关数据
socket.on('mouse_position', function(data) {
socket.broadcast.emit('mouse_position_update', data);
});
我使用一个raphael对象在其他浏览器中显示鼠标指针,并使用animate函数根据父鼠标指针的移动显示鼠标指针。
var paper = new Raphael(canvas, 200, 200);
var cur = paper.circle(0, 0, 3);
cur.animate({
cx : data.mx,
cy : data.my
}, 1, 'linear');
此代码中的问题是,如果我有很多用户 (>100) 登录到这个系统,将使用大量带宽并且系统可能会崩溃。谁能告诉我有没有更好的方法来使用 socket.io 引擎来实现这个系统,或者有什么算法可以用来解决带宽问题。 任何形式的帮助对我来说都是很大的帮助。
【问题讨论】:
-
获得更多带宽?减少发送事件的频率?
-
谢谢,减少发送事件的频率??你能告诉我如何在不影响鼠标指针移动的情况下做到这一点吗?