💡
原文英文,约2600词,阅读约需10分钟。
📝
内容提要
上周,我们重新实现了20个问题的游戏,并构建了网页和命令行界面。命令行界面仅限本地使用,无法与朋友共享。通过探索Python的AsyncSSH库,我们成功将游戏通过SSH托管,提供了交互式体验。文章分享了实现过程中的学习与发现。
🎯
关键要点
- 上周重新实现了20个问题的游戏,并构建了网页和命令行界面。
- 命令行界面仅限本地使用,无法与朋友共享。
- 通过探索Python的AsyncSSH库,成功将游戏通过SSH托管,提供了交互式体验。
- Paramiko和AsyncSSH是构建SSH服务器应用程序的库,AsyncSSH提供了更简单的文档和示例。
- 实现过程中使用了asyncssh.SSHServer和asyncssh.SSHServerSession类来定义应用逻辑。
- 通过asyncssh.create_server创建SSH服务器,设置了用户交互。
- 在处理用户输入时,使用了process.stdin.readline()来读取输入。
- 最终成功将游戏移植到SSH上,提供了同步的REPL体验。
- 文章分享了在实现过程中学习到的知识和经验,强调了AsyncSSH的直观开发体验。
❓
延伸问答
如何使用AsyncSSH库托管文字游戏?
通过AsyncSSH库,可以创建SSH服务器并定义应用逻辑,使用asyncssh.create_server来设置用户交互,从而托管文字游戏。
AsyncSSH与Paramiko有什么区别?
AsyncSSH提供了更简单的文档和示例,尽管Paramiko在GitHub上获得了更多的星标,但AsyncSSH在构建SSH服务器应用程序时更为直观。
在实现过程中遇到了哪些挑战?
实现过程中遇到的挑战包括用户输入处理的复杂性,以及如何确保应用在SSH环境下的交互体验流畅。
如何处理用户输入和输出?
用户输入通过asyncssh.SSHLineEditorChannel对象的readline()方法读取,输出则通过write()方法发送到SSH客户端。
文章中提到的REPL体验是什么?
REPL体验指的是读取用户输入、处理并打印响应的循环过程,使得游戏的交互变得同步。
如何启动AsyncSSH服务器?
可以通过asyncssh.create_server函数启动AsyncSSH服务器,并设置相应的主机密钥和端口。
➡️