mirror of
https://github.com/comma-hacks/webrtc.git
synced 2025-09-27 04:26:31 +08:00
32 lines
905 B
Python
32 lines
905 B
Python
import asyncio
|
|
import websockets
|
|
|
|
from aiortc.contrib.signaling import object_from_string, object_to_string
|
|
|
|
class WebsocketSignaling:
|
|
def __init__(self, server):
|
|
self._server = server
|
|
self._websocket = None
|
|
|
|
async def connect(self):
|
|
self._websocket = await websockets.connect(self._server)
|
|
|
|
async def close(self):
|
|
if self._websocket is not None and self._websocket.open is True:
|
|
await self.send(None)
|
|
await self._websocket.close()
|
|
|
|
async def receive(self):
|
|
try:
|
|
data = await self._websocket.recv()
|
|
except asyncio.IncompleteReadError:
|
|
return
|
|
ret = object_from_string(data)
|
|
if ret == None:
|
|
print("remote host says good bye!")
|
|
|
|
return ret
|
|
|
|
async def send(self, descr):
|
|
data = object_to_string(descr)
|
|
await self._websocket.send(data + '\n') |