Skip to content

socket.io-client does not work properly in Android(React-Native) with Laravel-echo  #5143

@Deep-Jani

Description

@Deep-Jani

When using Socket.io as a broadcaster in Laravel-echo, We are using Socketio from socket.io-client as a client for connecting to the socket ,joining into the channel and listen an event fired within the channel.
While working with React Native v0.71.10, I am facing issue regarded to the listening to the event.
The code works fine in iOS devices, but in Android it is not getting listened.

To Reproduce :-
1. these version of packages in package.json

"react-native": "0.71.10"
"laravel-echo": "^1.16.1"
"socket.io-client": "^4.7.5"

2. Add this in your useEffect

import Socketio from 'socket.io-client';
import Echo from 'laravel-echo/dist/echo';

const echo = new Echo({
 broadcaster: 'socket.io',
 host: SOCKET_URL,
 client: Socketio,
}); 

echo.channel('channel_name')
    .listen('.event', (data) => { console.log("🚀 ~ .listen ~ data:", data)  });

In iOS it works fine. In Android, there is no event log.
We tried many suggestions from the community, seems like none of them works for this scenario.

Things we already tried :-

  1. Adding 'CORS' on the server side
  2. tried using android:usesCleartextTraffic="true"
  3. Also tried suggestions from the closed issue of the Repo
  4. Tried downgrading 'Socket.io-client' package from 4.7.5 (latest as of 19/07/2024) to all the suggested ones in the community

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions