diff options
author | Aldo Cortesi <aldo@corte.si> | 2018-05-17 08:35:40 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-17 08:35:40 +1200 |
commit | 48d7a944bc324b88d4aa2abd158203b3f5cecb3d (patch) | |
tree | 2b4f154af7db4f89ca5775e50fa12df79c72ad18 /examples/complex/websocket_inject_message.py | |
parent | df9240f260c5f53936c8b4575d7f927e98bd6666 (diff) | |
parent | 976ab0c46696ea44b4a30856f9ac1fed4acb4a25 (diff) | |
download | mitmproxy-48d7a944bc324b88d4aa2abd158203b3f5cecb3d.tar.gz mitmproxy-48d7a944bc324b88d4aa2abd158203b3f5cecb3d.tar.bz2 mitmproxy-48d7a944bc324b88d4aa2abd158203b3f5cecb3d.zip |
Merge pull request #3119 from Kriechi/inject-websocket-message
websocket: inject messages via flow
Diffstat (limited to 'examples/complex/websocket_inject_message.py')
-rw-r--r-- | examples/complex/websocket_inject_message.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/examples/complex/websocket_inject_message.py b/examples/complex/websocket_inject_message.py new file mode 100644 index 00000000..e9c3ea0c --- /dev/null +++ b/examples/complex/websocket_inject_message.py @@ -0,0 +1,23 @@ +""" +This example shows how to inject a WebSocket message to the client. +Every new WebSocket connection will trigger a new asyncio task that +periodically injects a new message to the client. +""" +import asyncio +import mitmproxy.websocket + + +class InjectWebSocketMessage: + + async def inject(self, flow: mitmproxy.websocket.WebSocketFlow): + i = 0 + while not flow.ended and not flow.error: + await asyncio.sleep(5) + flow.inject_message(flow.client_conn, 'This is the #{} an injected message!'.format(i)) + i += 1 + + def websocket_start(self, flow): + asyncio.get_event_loop().create_task(self.inject(flow)) + + +addons = [InjectWebSocketMessage()] |