Source code for aiopyramid.websocket.view

import asyncio


[docs]class WebsocketConnectionView: """ :term:`view callable` for websocket connections. """ def __init__(self, context, request): self.context = context self.request = request @asyncio.coroutine def __call__(self, ws): self.ws = ws yield from self.on_open() while True: message = yield from self.ws.recv() if message is None: yield from self.on_close() break yield from self.on_message(message)
[docs] @asyncio.coroutine def send(self, message): yield from self.ws.send(message)
[docs] @asyncio.coroutine def on_message(self, message): """ Callback called when a message is received. Default is a noop. """ pass
[docs] @asyncio.coroutine def on_open(self): """ Callback called when the connection is first established. Default is a noop. """
[docs] @asyncio.coroutine def on_close(self): """ Callback called when the connection is closed. Default is a noop. """ pass