Getting Started


Add the following entry to your Info.plist file, located in

<key>NSCameraUsageDescription</key><string>$(PRODUCT_NAME) Camera Usage!</string><key>NSMicrophoneUsageDescription</key><string>$(PRODUCT_NAME) Microphone Usage!</string>


Ensure the following permission is present in your Android Manifest file, located in

<project root>/android/app/src/main/AndroidManifest.xml:  

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-permission android:name="android.permission.INTERNET" /> 

<uses-permission android:name="android.permission.CAMERA" /> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 


Create Client Instance:

First we need to create an instance of emitter client.

Emitter emitter = Emitter.instance; 

Add listeners:

Below described main helpful callbacks and listeners:

emitter.onConnect = (res) { 


emitter.onPresence = (res) { 


emitter.onsubscribe = (value) { 


emitter.onMessage = (msg) async { 


class used in ReadReceiptModel class to inform status of the message

class ReceiptType { 

static var sent = 1; 

static var delivered = 2; 

static var seen = 3; 


Class to identify the type of file

class MediaType { 

static int image = 0; 

static int audio = 1; 

static int video = 2; 

static int file = 3; 


Class to identify the type of Message

class MessageType { 

static const String text = "text"; 

static const String media = "media"; 

static const String file = "file"; 

static const String thumbnail = "thumbnail"; 

static const String path = "path"; 

static const String typing = "typing"; 


SDK Methods:


Use this method to connect socket.


String clientId,

bool reconnectivity,

String refID,

String authorization_token,

String project_id,

String host,

String port,



Use this method to subscribe to a chat or group

emitter.subscribePresence(String channelKey, String channelName, bool changes, bool status); 


Use this method to acknowledge the availability of the user.

emitter.subscribePresence(String channelKey, String channelName, bool changes, bool status); 


Use this method to publish message of object type which can be of any type i-e text ,audio,video,document or images type.

emitter.publish(String channelKey, String channelName, Map<String, dynamic> send_message);