Python一个简单的Websocket

示例

在这里,我们使用制作了一个简单的echo websocket asyncio。我们定义了用于连接到服务器以及发送/接收消息的协程。WebSocket的通信在main协程中运行,协程由事件循环运行。此示例是从先前的帖子中修改而来的。

import asyncio
import aiohttp

session = aiohttp.ClientSession()                          # 处理上下文管理器
class EchoWebsocket:
    
    async def connect(self):
       self.websocket= await session.ws_connect("wss://echo.websocket.org")
        
    async def send(self, message):
        self.websocket.send_str(message)

    async def receive(self):
        result = (await self.websocket.receive())
        return result.data

async def main():
    echo = EchoWebsocket()
    await echo.connect()
    await echo.send("你好,世界!")
    print(await echo.receive())                            # "你好,世界!"


if __name__ == '__main__':
    # 主循环
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())