Search packages, repositories and app categories

Package detailsv0.2.2

websocket_manager

A Flutter plugin for Android and iOS supports websocket connection

30-day downloads
49
Likes
44
Pub points
40

Install package

flutter pub add websocket_manager

Package Overview

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

A Flutter plugin designed for Android and iOS that enables seamless WebSocket connections. It provides a reliable and efficient way to maintain real-time communication between the app and server, supporting bidirectional data transfer. The package simplifies connection management, including automatic reconnection and message handling, making it ideal for live updates, chat applications, and real-time notifications. Built with simplicity and performance in mind, it integrates smoothly into Flutter projects.

Use cases

  • Real-time chat applications
  • Live data streaming
  • Push notification systems
  • IoT device communication
  • Online gaming features

Key features

  • Automatic reconnection on disconnect
  • Bidirectional message exchange
  • Simple API for connection management
  • Support for JSON and binary messages
  • Built-in error handling

Suitable for

  • Developers building real-time apps
  • Apps requiring persistent server connections
  • Projects needing low-latency communication

Considerations

  • Limited to Android and iOS platforms
  • No built-in encryption (requires external setup)
  • Depends on stable network connectivity

Original README

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


NOTE: This repository is no longer maintained by ENGAPP. It was moved to be maintained by Kunlatek on the following link: https://github.com/kunlatek/flutter_websocket_manager_plugin

Any issue regarding this plugin should be reported there.


Websocket Manager

A Flutter plugin for Android and iOS supports websockets. This plugin is based on two different native libraries Starscream for iOS and okHttp for Android.

This plugin was created due to our necessity to maintain a WebSocket connection active in background while Flutter's WebSocket from cookbook doesn't keep alive while screen is locked or the application was in background.

Introduction

Websocket Manager doesn't manipulate websockets in Dart codes directly, instead, the plugin uses Platform Channel to expose Dart APIs that Flutter application can use to communicate with two very powerful websocket native libraries. Because of that, all credits belong to these libraries.

How to install

Android

You only need this configuration if your server doesn't have SSL/TLS

Since Android P http is blocked by default and there are many ways to configure. One way to configure is explicitly saying that you accept clear text for some host.

  • Create res/xml/network_security_config.xml with content:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">your_domain</domain>
    </domain-config>
</network-security-config>
  • Point to this file from your manifest (for bonus points add it only for the test manifest):
<application
    android:networkSecurityConfig="@xml/network_security_config"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity android:name=" (...)
</application>
iOS

Doesn't require any configuration

Example

int messageNum = 0;
// Configure WebSocket url
final socket = WebsocketManager('wss://echo.websocket.org');
// Listen to close message
socket.onClose((dynamic message) {
    print('close');
});
// Listen to server messages
socket.onMessage((dynamic message) {
    print('recv: $message');
    if messageNum == 10 {
        socket.close();
    } else {
        messageNum += 1;
        final String msg = '$messageNum: ${DateTime.now()}';
        print('send: $msg');
        socket.send(msg);
    }
});
// Connect to server
socket.connect();

Credits

Categories

Source repository

Projects using this package

No data available yet.