【问题标题】:Prevent text from being overwritten by stream.write() in Node.js防止文本被 Node.js 中的 stream.write() 覆盖
【发布时间】:2011-05-26 21:44:31
【问题描述】:

我正在使用 Node.js 创建聊天。本质上,它使用 net 模块来创建服务器。连接到服务器的每个人都被添加到列表中。通过参与者列表向服务器 forEach()s 输入数据,并通过 .write() 将消息流式传输。不过有一个问题。如果您正在键入(并且您直接在终端窗口中键入)并且某些内容已写入您的流,则您已键入(但尚未提交)的所有内容都会被覆盖。有什么办法可以防止这种情况发生吗?我对此表示怀疑。您甚至不应该在聊天程序中使用如此简陋的东西。

【问题讨论】:

    标签: javascript terminal node.js chat


    【解决方案1】:

    如果您使用的是低级 stdin / stdout 那么实际上您无能为力(除非您每次都清空屏幕并重新绘制自己的缓冲区)。

    通常如果你想留在终端,你会使用诅咒。快速查看 modules page 会发现 Node.js 有一个 ncurses binding

    我还没有测试过,但如果你想保持老派终端,这似乎是完成事情的最快方法(也就是说,如果它在 2.5/3.x 中仍然有效)。

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 2017-12-19
      • 2021-02-08
      • 2020-07-23
      • 2013-06-06
      相关资源
      最近更新 更多