防止文本被Node.js中的stream.write()覆盖

时间:2010-12-17 01:50:58

标签: javascript terminal node.js chat

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

1 个答案:

答案 0 :(得分:0)

如果您使用的是低级stdin / stdout,那么实际上您无法做任何事情(除非您每次都清除屏幕并重绘自己的缓冲区)。

通常如果你想留在终端,你会使用诅咒。快速浏览modules page,可以看出Node.js有ncurses binding

我没有测试过,但这似乎是让事情完成的最快方式(也就是说,如果你仍然可以在2.5 / 3.x中工作),如果你想留在旧学校终端。