100行Python代码实现FastAPI Websocket 聊天室(纯协程方案)

本文发表于入职啦(公众号: ruzhila) 大家可以访问入职啦学习更多的编程实战。

项目地址

代码已经开源, fastapi_chatroom 👏 欢迎Star

代码运行效果:

在这里插入图片描述

所有的项目都在github上开源:100-line-code 欢迎Star 👏

用100行代码的不同语言(Java、Python、Go、Javascript、Rust)实现项目,通过讲解项目的实现,帮助大家学习编程

我们会定期在群里分享最新的项目实战代码,包括不同语言的实现

如何做一个聊天室

网页的聊天室最基本的功能就是能输入消息,并且广播给聊天室里面的所有成员,要支持消息的发生和接送,我们可以使用Websocket协议来实现这个功能

如果没有Websocket, 网页如果要获取服务器上的消息,就只能通过Pull的方式去获取最新的消息,也就是我们常说的轮询,这样会导致服务器的压力增大,而且消息的实时性也不高

这是一个简单的聊天室的工作流程:

在这里插入图片描述

  1. Bob 连接到聊天室,服务器启动了2个协程,一个用于接收消息,一个用于发送消息
  2. Bob 发送消息到服务端, 然后通过 dispatch_messsage 协程广播给所有的用户
  3. 聊天室所有的用户 收到消息之后,通过websocket发送到网页上,显示消息

这是最基本的聊天室的工作流程,通过这样的流程,我们可以大概知晓我们要怎么设计程序结构

下一步就是我们要用FastAPI实现简单的Websocket代码

FastAPI的Websocket程序结构

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值