socket.io for flutter by adhara
supports both Android and iOS
Usage:
See example/lib/main.dart
for better example
SocketIOManager manager = SocketIOManager();
SocketIO socket = manager.createInstance('http://192.168.1.2:7000/'); //TODO change the port accordingly
socket.onConnect((data){
print("connected...");
print(data);
socket.emit("message", ["Hello world!"]);
});
socket.on("news", (data){ //sample event
print("news");
print(data);
});
socket.connect();
///disconnect using
///manager.
To request callback on ack:
socket.emitWithAck("message", ["Hello world!"]).then( (data) {
// this callback runs when this specific message is acknowledged by the server
print(data);
});
-
Open
example/ios
in XCode orexample/android
in android studio. Build the code once (cd example
&flutter build apk
|flutter build ios --no-codesign
) -
cd
example/socket.io.server
1 run
npm i
2 run
npm start
-
open
example/lib/main.dart
and edit theURI
in #7 to point to your hosted/local socket server instances as mentioned step 2For example:
const String URI = "http://192.168.1.2:7000/";
const String URI = "http://mysite.com/";
-
run Android/iOS app
This project uses Swift for iOS support, please enable Swift support for your project for this plugin to work
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>
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
Feel free to checkout our Adhara package