jina.clients.websocket module

class jina.clients.websocket.WebSocketClient(args=None, **kwargs)[source]

Bases: jina.clients.base.websocket.WebSocketBaseClient, jina.clients.mixin.PostMixin

A client communicates the server with WebSocket protocol.

class jina.clients.websocket.AsyncWebSocketClient(args=None, **kwargs)[source]

Bases: jina.clients.base.websocket.WebSocketBaseClient, jina.clients.mixin.AsyncPostMixin

A client communicates the server with WebSocket protocol.

Unlike WebSocketClient, here post() is a coroutine (i.e. declared with the async/await syntax), simply calling them will not schedule them to be executed.

To actually run a coroutine, user need to put them in an event loop, e.g. via asyncio.run(), asyncio.create_task().

AsyncWebSocketClient can be very useful in the integration settings, where Jina/Flow/Client is NOT the main logic, but rather served as a part of other program. In this case, users often do not want to let Jina control the asyncio.eventloop. On contrary, Client is controlling and wrapping the event loop internally, making the Client looks synchronous from outside.