-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
amqp over websocket support #197
base: master
Are you sure you want to change the base?
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
WebSocket
as transport. Consequently, provided the mechanism foraio-pika
to work.