adhara_socket_io

Creator: coderz1093

Last updated:

0 purchases

adhara_socket_io Image
adhara_socket_io Images
Add to Cart

Description:

adhara socket io

adhara_socket_io #

socket.io for flutter by adhara
supports both Android and iOS
socket.io version supported: v2
development in progress for v3 and v4

If you are using v3/v4 socket on server side, you may face connection issues, please downgrade and try in such scenario.

Usage:

See example/lib/main.dart for more detailed example

final SOCKET_SERVER = 'http://192.168.1.2:7070/'; //To be modified accordingly
SocketIO socket;
StreamSubscription connectSubscription;
StreamSubscription echoSubscription;

Future<void> demonstrateSocket() async {
// Create a socket instance
socket = await SocketIOManager().createInstance(
SocketOptions(SOCKET_SERVER),
);

// Listen to socket connect event
subscription = socket.onConnect.listen((data){
print('connected: $data');
socket.emit('message', ['Hello world!']);
});

// Listen to an custom ("news") event
echoSubscription = socket.on('echo', (data){
print("news event recieved with data: $data");
});

// There are 2 ways to connect to socket server
// - normal: doesn't wait for connectio success
// - sync: ensures connection or errors out on failure

// normal:
// connect to socket server - will initialize connection,
// but not ensure the connection yet.
// If this method used to connect to server, then emit events should be sent
// only after ensuring connection to socket server is successful by listening
// to onConnect events
// await socket.connect();

// sync:
// This API will ensure connection to server is successful
// or will throw error on connect error
await socket.connectSync();

// publish data - will publish to server, won't ensure the delivery
await socket.emit('echo', ['hello']);

// emit with acknowledgement - will publish to server
// and ensure delivery with ack if ack is implemented in server
dynamic ackData = await socket.emitWithAck('echo', ['hello']);
print('acknowledgement recieved from server: $ackData');
}

Future<void> dispose() async {
// cancel echo and onConnect subscriptions
await echoSubscription.cancel();
await connectSubscription.cancel();

// clear socket instance from manager
await SocketIOManager().clearInstance(socket);
}

// register liteners, connect to a socket, and publish data
demonstrateSocket();

// will dispose listeners and socket
dispose();
copied to clipboard
Running example: #

clone the project
start socket server in the background

cd socket.io.server
npm i
./node_modules/.bin/pm2/ index.js
cd ../
copied to clipboard


open example/lib/main.dart and edit the URI in #7 to point to your hosted/local socket server instances as mentioned step 2
For example:
const String URI = "http://192.168.1.2:7000/";
copied to clipboard
const String URI = "http://mysite.com/";
copied to clipboard


run example


cd example
flutter run
copied to clipboard
iOS support 📢📢 #
This project uses Swift for iOS support, please enable Swift support for your project for this plugin to work
Android support for SDK > 27 #
Configure android:usesCleartextTraffic="true" as a property of <application ...> tag in android/app/src/main/AndroidManifest.xml
For example:

<application
android:name="io.flutter.app.FlutterApplication"
android:label="adhara_socket_io_example"
android:usesCleartextTraffic="true"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"...>...</activity>
...
</application>
copied to clipboard
Refer to discussion here
Running tests #
This plugin uses flutter driver to run integration tests tests. Use below command to run integration tests on Android/iOS
sh bin/run_tests.sh
copied to clipboard
Sample Video - Running the example #

FAQ's #
AdharaSocketIoPlugin.m:2:9: fatal error: 'adhara_socket_io/adhara_socket_io-Swift.h' file not found
add use_frameworks! to your Podfile as in the example
https://github.com/infitio/flutter_socket_io/blob/master/example/ios/Podfile#L30
Read more about this: discussion
Other Packages: #
Feel free to checkout our Adhara package

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.