You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move the duplicated remote-request handling from the redis, postgres and mongodb
adapters into socketioxide_core behind the existing remote-adapter feature flag.
Current state: each adapter implements a near-identical recv_req dispatch plus the
same recv_* handlers (~110 LOC per adapter): broadcast, broadcast_with_ack,
disconnect_sockets, all_rooms, add/del sockets, fetch sockets. Each also repeats the
same get_res / broadcast_with_ack skeleton (response channel setup, ResponseHandlers insert, ResponseTypeId filter, take(remote_serv_cnt), request
timeout).
Part of #727.
Move the duplicated remote-request handling from the redis, postgres and mongodb
adapters into
socketioxide_corebehind the existingremote-adapterfeature flag.Current state: each adapter implements a near-identical
recv_reqdispatch plus thesame
recv_*handlers (~110 LOC per adapter): broadcast, broadcast_with_ack,disconnect_sockets, all_rooms, add/del sockets, fetch sockets. Each also repeats the
same
get_res/broadcast_with_ackskeleton (response channel setup,ResponseHandlersinsert,ResponseTypeIdfilter,take(remote_serv_cnt), requesttimeout).
Proposed shared API (sketch, in core):
RemoteRequestHandlertrait (naming TBD) implemented by each adapter, exposingonly what the handlers need: the local
CoreLocalAdapter, the adapteruid, asend_ressink, and the heartbeat hook from refactor(core): move heartbeat/liveness logic into core behind remote-adapter feature #768.recv_reqdispatch and allrecv_*implementations provided on the trait.get_res/broadcast_with_ackskeleton.Each adapter then keeps only its wire-specific parts (codec, driver calls,
channel/item routing). No behavior or wire-format change.