패키지, 저장소 및 앱 카테고리 검색

패키지 상세v1.0.1+1

adhara_socket_io

adhara가 제공하는 Flutter용 socket.io 웹소켓, iOS 및 Android 둘 다 지원

30일 다운로드
110
좋아요
86
Pub 점수
30

패키지 설치

flutter pub add adhara_socket_io

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Adhara Socket.IO는 Socket.IO 프로토콜을 사용하여 WebSocket 통신을 가능하게 하는 Flutter 패키지로, iOS 및 Android 플랫폼을 모두 지원합니다. Infitio에서 개발한 이 패키지는 Flutter 앱에 실시간 기능을 구현하는 신뢰할 수 있고 효율적인 방법을 제공합니다. 연결 관리, 이벤트 처리, 메시지 브로드캐스팅을 간소화하여 채팅 시스템, 실시간 알림, 협업 도구와 같은 실시간 업데이트가 필요한 애플리케이션에 적합합니다. 기존의 Socket.IO 서버와 원활하게 통합되며, 개발자를 위한 깔끔하고 Dart 친화적인 API를 제공합니다.

사용 사례

  • 실시간 채팅 애플리케이션
  • 실시간 데이터 스트리밍
  • 협업 편집 도구
  • 사물인터넷 장치 모니터링
  • 푸시 알림

주요 기능

  • Socket.IO 프로토콜을 지원합니다
  • 크로스 플랫폼(iOS 및 안드로이드)
  • 간단한 이벤트 기반 API
  • 자동 재연결
  • 가볍고 빠름

적합한 대상

  • 실시간 플러터 앱을 개발하는 개발자
  • Socket.IO 서버를 사용하는 팀
  • 실시간 데이터 동기화가 필요한 앱

고려 사항

  • 호환되는 Socket.IO 서버가 필요합니다
  • WebSocket 기반 통신에 제한됨
  • 내장 암호화 없음 (HTTPS 사용)

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

adhara_socket_io

.github/workflows/flutter_integration.yaml

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();

Running example:

  1. clone the project
  2. start socket server in the background
cd socket.io.server
npm i
./node_modules/.bin/pm2/ index.js
cd ../
  1. 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/";
    
    const String URI = "http://mysite.com/";
    
  2. run example

cd example
flutter run

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>

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

Sample Video - Running the example

Running adhara socket io for flutter, 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

카테고리

의존성

의존성 목록 1 개

  • pedantic^1.9.2

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.