metropolitan-bronze•3y ago
socket
Hello,
I have a question I am trying to integrate socket.io for live-provider.
I have an order list which I want to refetch when I get new socket message from be
be socket channel name is managerNewOrder, message payload is { orderId: number }
current implementation that doesn't work
live provider
refine component props
order list
4 Replies
Hi @onedude.. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Based on the information provided in the extracts, refine allows you to add real-time support to your application using the
liveProvider prop. The liveProvider must have the following properties: subscribe, unsubscribe, and optionally publish.
In your case, you are using socket.io for real-time updates. Your liveProvider implementation seems correct as it follows the required structure. The subscribe method is used to listen for new messages from the backend and the unsubscribe method is used to disconnect the socket.
In your OrderList component, you are using the useSubscription hook to subscribe to the managerNewOrder channel. When a new event is received, you are logging the event and refetching the table data.
If your current implementation is not working, it might be due to a few reasons:
1. The socket connection might not be established correctly. You can check this by logging the socket status in your liveProvider.
2. The channel name might be incorrect. Ensure that the channel name you are subscribing to in your OrderList component matches the one you are publishing to in your backend.
3. The refetch method might not be working as expected. You can check this by manually triggering a refetch to see if the table data updates.
Unfortunately, without more information, it's hard to pinpoint the exact issue. I would recommend checking the points mentioned above and also referring to the refine documentation (https://refine.dev/docs) for more information on how to use liveProvider and useSubscription.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@648258241574338571> kapa.ai is still learning and improving, please let us know how it did by reacting below
sensitive-blue•3y ago
Hello, this problem is related to
live-provider implementation. I suggest you to review the live provider documentation and live provider implementations.
https://refine.dev/docs/api-reference/core/providers/live-provider/#overview
Supabase → https://github.com/refinedev/refine/blob/master/packages/supabase/src/index.ts#L187
Appwrite → https://github.com/refinedev/refine/blob/master/packages/appwrite/src/index.ts#L252
Hasura → https://github.com/refinedev/refine/blob/master/packages/hasura/src/liveProvider/index.ts#L16metropolitan-bronzeOP•3y ago
figured out. anybody trying to integrate socket.io can have a look
live-provider
list.tsx
refine component props