自学 python 中的异步编程 asyncio:实战(三)websocket服务

  • 利用python协程库写了关于websocket通信的简单代码
  • 流程比较简单粗略,主要用于学习协程asyncio库,阅读阅读即可理解
  • 关于websockets库,还有很多要学习的地方,后面我将为此再开一个自学专栏

server 端代码

import asyncio
import time

import websockets


# 处理websocket连接请求的协程函数
async def handler(websocket):
    print(f"[{time.asctime()} connection established]")
    async for message in websocket:
        print(f"[{time.asctime()} from client] {message}")
        await websocket.send(message)


# 开启服务器的协程函数

async def start_s():
    # 通过websockets库创建服务器,并指定协议、IP地址和端口号
    async with websockets.serve(handler, "localhost", 8765, ping_interval=200, ping_timeout=200, timeout=2000):
        print(f"{time.asctime()}[Server Started]")

        await asyncio.Future()  # 通过返回一个永久等待的协程,让协程函数一直运行


if __name__ == '__main__':
    asyncio.run(start_s())


client 端代码

import asyncio
import time

import websockets


async def start_c():
    # 与WebSocket服务器建立连接
    async with websockets.connect("ws://localhost:8765", ping_interval=200, ping_timeout=200,
                                  timeout=2000) as websocket:
        while True:
            msg = input("please input: ")
            await websocket.send(msg)

            # 等待服务器返回响应消息
            message = await websocket.recv()
            print(f"[{time.asctime()}from server]: {message}")


if __name__ == '__main__':
    asyncio.run(start_c())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值