如何在Tornado循环中监听stdin发生的事件?
特别是,在tornado系统中,我想从stdin读取数据,做出反应,并在stdin关闭时终止。同时,Tornado Web服务正在同一进程上运行。
在寻找这个问题的解决方法时,我发现了处理外部生成进程流的最相似的方法。然而,这不是我想要的:我想要处理当前进程的输入/输出流,即具有Web服务器的进程。
从结构上看,我的服务器与hello-world tornado非常相似,因此我们可以以此为例。我只需要添加一个stdin处理程序。
特别是,在tornado系统中,我想从stdin读取数据,做出反应,并在stdin关闭时终止。同时,Tornado Web服务正在同一进程上运行。
在寻找这个问题的解决方法时,我发现了处理外部生成进程流的最相似的方法。然而,这不是我想要的:我想要处理当前进程的输入/输出流,即具有Web服务器的进程。
从结构上看,我的服务器与hello-world tornado非常相似,因此我们可以以此为例。我只需要添加一个stdin处理程序。
ogram Files (x86)\Python35-32\workspace\webSocketServer.py == Traceback (most recent call last): File "C:\Program Files (x86)\Python35-32\workspace\webSocketServer.py", line 38, in <module> tornado.ioloop.IOLoop.instance().add_handler(sys.stdin, on_stdin, tornado.ioloop.IOLoop.READ) File "C:\Program Files (x86)\Python35-32\lib\site-packages\tornado\ioloop.py", line 719, in add_handler fd, obj = self.split_fd(fd) File "C:\Program Files (x86)\Python35-32\lib\site-packages\tornado\ioloop.py", line 648, in split_fd return fd.fileno(), fd io.UnsupportedOperation: fileno
- Stefan Höltker