amqp over websocket support - #197
Conversation
|
@mosquito It looks like it won't pass at least because of the very fact that github workflows should be modified. It requires https://github.com/cloudamqp/websocket-tcp-relay image. I have to play a little bit w.r.t. Github Actions to make it work. |
|
@mosquito adjusted to pass all the checks. I have to use docker compose instead of GHA services, since it is not possible to override entry point in an adequate way. See GitHub Workflows: Overriding A Service's Entrypoint:
|
|
Hi. I wanted to ask about the status of the pull request, as it's been idle for a while. I'm quite interested in the functionality it introduces and was wondering if there are any updates or if there's anything I can do to help move it forward. Thanks! |
|
@ozobotnovako You could simplify checkout the specific branch and put the appropriate folder as a module. The order of resolution would do the trick. $ pip install aio-pika This would install Then you could place As for the MR, I suggest you test it first. Make a review at least. This would be beneficial. The very transport (from TCP to WebSocket) substitution could actually go to |
|
I did a quick test against RabbitMQ behind cloudamqp websocket relay, everything seems to be working as expected. I couldn't find the relevant |
|
There is a pair of Then it would be one line solution for class ClientWebSocketResponse:
def __init__(
self,
reader: "FlowControlDataQueue[WSMessage]",
writer: WebSocketWriter,
protocol: Optional[str],
response: ClientResponse,
timeout: ClientWSTimeout,
autoclose: bool,
autoping: bool,
loop: asyncio.AbstractEventLoop,
*,
heartbeat: Optional[float] = None,
compress: int = 0,
client_notakeover: bool = False,
) -> None:
... |
|
@aloschilov It would be nice to use the streaming API, but I'm not sure if it's possible to implement SocketReader/Writer API in a generic way. WebSockets support binary and text messages, while the streaming API only supports However, in case it would make the PR more acceptable for @mosquito , I can try to open a discussion about that in the aiohttp repo. |
This pull request provides support for using
WebSocketas transport. Consequently, provided the mechanism foraio-pikato work.