server side (esp):
download and install official micropython firmware (25/09/19)
install "uasyncio 2.0" and "websocket server" libraries from micropython-lib:
Code: Select all
import upip
pip.install(uasyncio)
pip.install(uasyncio.websocket.server)
Code: Select all
/lib/uasyncio/websocket/server.py
Code: Select all
3 import uwebsocket # change websocket by uwebsocket
...
10 respkey = ubinascii.b2a_base64(respkey)[:-1] #uncomment [:-1]
....
56 #await writer.awrite("\r\n") #Comment
57 await writer.awrite("\r\n\r\n") #Uncomment
...
Code: Select all
import uasyncio
from uasyncio.websocket.server import WSReader, WSWriter
def echo(reader, writer):
# Consume GET line
yield from reader.readline()
reader = yield from WSReader(reader, writer)
writer = WSWriter(reader, writer)
while 1:
l = yield from reader.readline()
print(l)
if l == b"\r":
await writer.awrite(b"\r\n")
else:
await writer.awrite(l)
import logging
logging.basicConfig(level=logging.INFO)
logging.basicConfig(level=logging.DEBUG)
loop = uasyncio.get_event_loop()
loop.create_task(uasyncio.start_server(echo, "192.168.4.1", 8081))
loop.run_forever()
loop.close()
client side Cpython >= 3.6:
Code: Select all
pip install websockets
Code: Select all
#!/usr/bin/env python
import asyncio
import websockets
async def hello():
uri = "ws://192.168.4.1:8081" # replaced "ws://localhost:8765" by "192.168.4.1:8081"
async with websockets.connect(uri) as websocket:
await websocket.send(b'hello\r\n') # replaced "Hello world!" by b'hello\r\n'
await websocket.recv()
asyncio.get_event_loop().run_until_complete(hello())
====================================================
Hi
I would like to run the example module of async version of websocket server from "https://github.com/micropython/micropyt ... websock.py" on a "esp32spiram-20190529-v1.11.bin"
It failed due to "websocket" library not available in the "server.py" module.
I haven't found "websocket" in micropython-lib directory, wher can I found it ?
Thanks