Search packages, repositories and app categories

Package detailsv2.2.13

xmpp_plugin

Xmpp plugin which helps to connect with xmpp via native channels and native libs like smack android and ios via xmppframework

AndroidiOS
30-day downloads
64
Likes
96
Pub points
130

Install package

flutter pub add xmpp_plugin

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

The xmpp_plugin is a Flutter package that enables real-time communication by connecting to XMPP (Extensible Messaging and Presence Protocol) servers through native channels on Android and iOS. It leverages native libraries such as Smack for Android and XMPPFramework for iOS, ensuring robust and efficient messaging capabilities. This plugin is ideal for applications requiring instant messaging, presence detection, and secure chat features. It provides a bridge between Flutter and platform-specific XMPP implementations, offering better performance and compatibility with existing XMPP infrastructure.

Use cases

  • Real-time chat applications
  • Presence and status tracking
  • Secure messaging systems
  • Integration with existing XMPP servers
  • Multi-platform messaging apps

Key features

  • Native integration via Smack and XMPPFramework
  • Cross-platform support for Android and iOS
  • Secure connection handling
  • Support for XMPP server protocols
  • Lightweight and efficient communication

Suitable for

  • Developers building chat apps with XMPP
  • Teams using XMPP-based backend services
  • Apps requiring low-latency messaging
  • Projects needing native-level XMPP performance
  • Mobile apps targeting both Android and iOS

Considerations

  • Requires native setup for full functionality
  • Dependent on external XMPP server
  • Limited documentation available
  • May require additional configuration on each platform
  • Not suitable for non-XMPP communication needs

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

xmpp_plugin

status workflow

  1. Connect to the xmpp server
final param = {
      "user_jid":"jid/resource",
      "password": "password",
      "host": "xmpphost",
      "port": "5222",
      "nativeLogFilePath": "filepath",
      "requireSSLConnection": true,
      "autoDeliveryReceipt": true,
      "useStreamManagement": false,
      "automaticReconnection": true,
};

XmppConnection xmppConnection = XmppConnection(param);

await xmppConnection.start(_onError);
await xmppConnection.login();

  1. Send message to one-one chat
await xmppConnection.sendMessageWithType("xyz@domain", "Hi", "MSGID");
await xmppConnection.sendGroupMessageWithType("xyz@conference.domain", "Hi", "MSGID");
  1. Disconnect the xmppConnection
xmppConnection.logout();
  1. Creating a MUC
xmppConnection.createMUC("groupName", true);
  1. Joining MUC
xmppConnection.joinMucGroups(List<String> allGroupsId)

  1. Sending Custom Message
await xmppConnection.sendCustomMessage("xyz@domain", "Hi", "MSGID","customTest");
await xmppConnection.sendCustomGroupMessage("xyz@conference.domain", "Hi", "MSGID","customText");

  1. Sending Delivery Receipt
await flutterXmpp.sendDelieveryReceipt("xyz@domain", "Received-Message-Id", "Receipt-Id");
  1. Adding members to MUC
await flutterXmpp.addMembersInGroup("groupName", List<String> allMembersId);
  1. Adding admins to MUC
await flutterXmpp.addAdminsInGroup("groupName", List<String> allMembersId);
  1. Get member list from the MUC
await flutterXmpp.getMembers("groupName");
  1. Get Admin list from the MUC
await flutterXmpp.getAdmins("groupName");
  1. Get Owner list from the MUC
await flutterXmpp.getOwners("groupName");
  1. Remove members from the MUC
await flutterXmpp.removeMember("groupName", List<String> allMembersId);
  1. Remove admins from group
await flutterXmpp.removeAdmin("groupName", List<String> allMembersId);
  1. Get online member count from group
var onlineCount = await flutterXmpp.getOnlineMemberCount("groupName");
  1. Get last activity of the jid
var lastseen = await flutterXmpp.getLastSeen(jid);
  1. Get the list of my rosters
await flutterXmpp.getMyRosters();
  1. Creating a roster entry
await flutterXmpp.createRoster(jid);
  1. Join single MUC
await flutterXmpp.joinMucGroup(groupId);
  1. Request MAM Messages
await flutterXmpp.requestMamMessages(userJid, requestSince, requestBefore, limit);
  1. Update Typing Status
await flutterXmpp.changeTypingStatus(userJid, typingStatus);
  1. Update Presence Type
await flutterXmpp.changePresenceType(presenceType, presenceMode);
  1. Get Connection status
XmppConnectionState connectionStatus = await flutterXmpp.getConnectionStatus();
  1. Get ErrorResponse Event
void onXmppError(ErrorResponseEvent errorResponseEvent) {
    // TODO : Handle the Error Event
}
  1. Get SuccessResponse Event
void onSuccessEvent(SuccessResponseEvent successResponseEvent) {
    // TODO : Handle the Success Event
}
  1. Get ChatMessage Event
void onChatMessage(MessageChat messageChat) {
    // TODO : Handle the ChatMessage Event
}
  1. Get GroupMessage status
void onGroupMessage(MessageChat messageChat) {
    // TODO : Handle the GroupMessage Event
}
  1. Get NormalMessage status
void onNormalMessage(MessageChat messageChat) {
    // TODO : Handle the NormalMessage Event
}
  1. Get PresenceChange status
void onPresenceChange(PresentModel presentModel) {
    // TODO : Handle the PresenceChange Event
}
  1. Get ChatStateChange status
void onChatStateChange(ChatState chatState) {
    // TODO : Handle the ChatState Event
}
  1. Get ConnectionEvent status
void onConnectionEvents(ConnectionEvent connectionEvent) {
    // TODO : Handle the ConnectionEvent Event
}

Contact

You can reach us via mail(hiren@xrstudio.in) the if you have questions or need support.

Categories

Source repository

Projects using this package

No data available yet.