Skip to content

Commit

Permalink
Fix README
Browse files Browse the repository at this point in the history
  • Loading branch information
taras committed Aug 21, 2024
1 parent 46f73bc commit 1709d30
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 24 deletions.
43 changes: 22 additions & 21 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ Connects to an echo server, sends a message and disconnect upon reply.
if __name__ == '__main__':
asyncio.set_event_loop_policy(uvloop.EventLoopPoli
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.run(main("ws://127.0.0.1:9001"))
This prints:

Expand All @@ -92,31 +93,31 @@ Echo server

.. code-block:: python
import asyncio
import uvloop
from picows import WSFrame, WSTransport, WSListener, ws_create_server, WSMsgType
import asyncio
import uvloop
from picows import WSFrame, WSTransport, WSListener, ws_create_server, WSMsgType, WSUpgradeRequest
class ServerClientListener(WSListener):
def on_ws_connected(self, transport: WSTransport):
print("New client connected")
class ServerClientListener(WSListener):
def on_ws_connected(self, transport: WSTransport):
print("New client connected")
def on_ws_frame(self, transport: WSTransport, frame: WSFrame):
transport.send(frame.msg_type, frame.get_payload_as_bytes())
if frame.msg_type == WSMsgType.CLOSE:
transport.disconnect()
def on_ws_frame(self, transport: WSTransport, frame: WSFrame):
transport.send(frame.msg_type, frame.get_payload_as_bytes())
if frame.msg_type == WSMsgType.CLOSE:
transport.disconnect()
async def main():
def listener_factory(r: WSUpgradeRequest):
# Routing can be implemented here by analyzing request content
return ServerClientListener()
async def main():
def listener_factory(r: WSUpgradeRequest):
# Routing can be implemented here by analyzing request content
return ServerClientListener()
server: asyncio.Server = await ws_create_server(listener_factory, "127.0.0.1", 9001)
for s in server.sockets:
print(f"Server started on {s.getsockname()}")
server: asyncio.Server = await ws_create_server(listener_factory, "127.0.0.1", 9001)
for s in server.sockets:
print(f"Server started on {s.getsockname()}")
await server.serve_forever()
await server.serve_forever()
if __name__ == '__main__':
if __name__ == '__main__':
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.run(main())
Expand Down
23 changes: 23 additions & 0 deletions examples/readme_client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import asyncio
import uvloop
from picows import WSFrame, WSTransport, WSListener, ws_connect, WSMsgType


class ClientListener(WSListener):
def on_ws_connected(self, transport: WSTransport):
self.transport = transport
transport.send(WSMsgType.TEXT, b"Hello world")

def on_ws_frame(self, transport: WSTransport, frame: WSFrame):
print(f"Echo reply: {frame.get_payload_as_ascii_text()}")
transport.disconnect()


async def main(url):
(_, client) = await ws_connect(ClientListener, url)
await client.transport.wait_disconnected()


if __name__ == '__main__':
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.run(main("ws://127.0.0.1:9001"))
9 changes: 6 additions & 3 deletions examples/echo_server_readme.py → examples/readme_server.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import asyncio
import uvloop
from picows import WSFrame, WSTransport, WSListener, ws_create_server, WSMsgType, WSUpgradeRequest
from picows import WSFrame, WSTransport, WSListener, ws_create_server, \
WSMsgType, WSUpgradeRequest


class ServerClientListener(WSListener):
Expand All @@ -18,12 +19,14 @@ def listener_factory(r: WSUpgradeRequest):
# Routing can be implemented here by analyzing request content
return ServerClientListener()

server: asyncio.Server = await ws_create_server(listener_factory, "127.0.0.1", 9001)
server: asyncio.Server = await ws_create_server(listener_factory,
"127.0.0.1", 9001)
for s in server.sockets:
print(f"Server started on {s.getsockname()}")

await server.serve_forever()


if __name__ == '__main__':
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
asyncio.run(main())
asyncio.run(main())

0 comments on commit 1709d30

Please sign in to comment.