46、构建虚拟茶话会聊天服务器与远程编辑工具

构建虚拟茶话会聊天服务器与远程编辑工具

1. 虚拟茶话会聊天服务器

1.1 二次实现需求

首个聊天服务器原型虽能正常运行,但功能有限,主要表现在无法分辨发言者,且不能解析如 say logout 等命令。因此,需要添加用户身份支持(每个用户有唯一名称)和命令解析功能,并使每个会话的行为依赖于其所处状态(刚连接、已登录等),同时要便于扩展。

1.2 基本命令解析

可参照标准库 cmd 模块的 Cmd 类来实现命令解析。由于 Cmd 类只能与 sys.stdin sys.stdout 配合使用,而我们要处理多个流,所以需要一个能处理单行文本的函数或方法。它应拆分出首个单词(即命令),并据此调用相应方法。示例代码如下:

class CommandHandler:
    """
    Simple command handler similar to cmd.Cmd from the standard library.
    """
    def unknown(self, session, cmd):
        session.push('Unknown command: {}s\r\n'.format(cmd))
    def handle(self, session, line):
        if not line.strip(): re
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值