Exemplo n.º 1
0
class TestAsyncClientWebSocket(TestCase):
    
    @staticmethod
    def application(environ, start_response):
        if 'wsgi.get_websocket' not in environ:
            start_response('400 Not WebSocket', [])
            return []
        websocket = environ['wsgi.get_websocket']()
        websocket.do_handshake()
        while True:
            message = websocket.receive()
            if message is None:
                break
            websocket.send('echo' + message)
   

    def setUp(self):
        self.server = WebSocketServer(('127.0.0.1', 15001), self.application, policy_server=False)
        self.server.start()
        self.port = self.server.server_port


    def tearDown(self):
        timeout = gevent.Timeout(0.5,RuntimeError("Timeout trying to stop server"))
        timeout.start()
        try:
            self.server.stop()
        finally: timeout.cancel()
Exemplo n.º 2
0
 def setUp(self):
     self.server = WebSocketServer(('127.0.0.1', 15001), self.application, policy_server=False)
     self.server.start()
     self.port = self.server.server_port
Exemplo n.º 3
0
import asyncio

import os
import sys

root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
sys.path.insert(0, root)

from websocket.client import Client
from websocket.server import WebSocketServer
from websocket.stream.reader import WebSocketReader

loop = asyncio.get_event_loop()
socket = WebSocketServer("localhost", 3001, loop=loop)


async def notify_of(client):
    await send_message(f'New client connected! {hex(id(client))}')


async def send_message(msg):
    for other in socket.clients.values():
        await other.writer.send(msg)


@socket.connection
async def on_connection(client: Client):
    print(f'Connection from {client.addr, client.port}')
    print(f'All clients: {socket.clients}')

    @client.message