Python Language Un websocket simple


Exemple

Ici, nous faisons un websocket echo simple en utilisant asyncio . Nous définissons des coroutines pour se connecter à un serveur et envoyer / recevoir des messages. Les communications du websocket sont exécutées dans une coroutine main , qui est exécutée par une boucle d'événement. Cet exemple est modifié depuis un article précédent .

import asyncio
import aiohttp

session = aiohttp.ClientSession()                          # handles the context manager
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("Hello World!")
    print(await echo.receive())                            # "Hello World!"


if __name__ == '__main__':
    # The main loop
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())