是更好的长和重复的消息与.volatile标志或更短但“不可错过”?

时间:2011-09-27 22:05:46

标签: javascript node.js socket.io

我想创建一个依赖socket.io的应用程序来提供实时协作编辑,我想知道哪些情况更好/更快:

<textarea id="some-id" onkeypress="broadcast()" ... >Type your text here</textarea>
  • 每次进行更改时,客户端都会使用volatile标志广播整个输入,因此如果邮件丢失,下一个邮件将替换它。
  • 每次进行更改时,客户端都会广播 仅更改 ,而其他客户则会应用它。

此外,我是否可以使用其他API /框架/插件而不是socket-io进行协作文档编辑?
谢谢。

1 个答案:

答案 0 :(得分:1)

让我在你发布这个问题一年后回答你的问题,因为你现在可能已经很不耐烦了!

我认为你最好只发送更改。

  • 如果两个人同时打字,如果您覆盖了所有内容,即使非常低延迟,您也会丢失数据。这是不可接受的。
  • 如果没有易失性标志,延迟将会非常低,就像几分之一秒。 (当然也取决于用户的连接)。远程人员可能不会注意到这些微小的延迟。
  • 文档可能会变得很大,所以如果有人在一个大文档中打字,你就会发送大量数据,效率不高。

Socket.IO非常适合这项工作:它具有很好的跨浏览器兼容性,并且开销是可以接受的。如果您只定位支持HTML5的Websocket的浏览器,则可以使用Websocket package作为node.js。