stream_chat

Creator: coderz1093

Last updated:

Add to Cart

Description:

stream chat

Official Dart Client for Stream Chat #

The official Dart client for Stream Chat, a service for building chat applications. This library can be used on any Dart project and on both mobile and web apps with Flutter.




Quick Links

Register to get an API key for Stream Chat
Flutter Chat Tutorial
Chat UI Kit
Chat Client Docs

V4 Migration Guide
For upgrading from V3 to V4, please refer to the V4 Migration Guide
Changelog #
Check out the changelog on pub.dev to see the latest changes in the package.
Getting started #
Add dependency #
Add this to your package's pubspec.yaml file, use the latest version
dependencies:
stream_chat: ^latest-version
copied to clipboard
You should then run flutter packages get
Example Project #
There is a detailed Flutter example project in the example folder. You can directly run and play on it.
Setup API Client #
First you need to instantiate a chat client. The Chat client will manage API call, event handling and manage the web socket connection to Stream Chat servers. You should only create the client once and re-use it across your application.
final client = StreamChatClient("stream-chat-api-key");
copied to clipboard
Logging #
By default the Chat Client will write all messages with level Warn or Error to stdout.
Change Logging Level
During development you might want to enable more logging information, you can change the default log level when constructing the client.
final client = StreamChatClient("stream-chat-api-key", logLevel: Level.INFO);
copied to clipboard
Custom Logger
You can handle the log messages directly instead of have them written to stdout, this is very convenient if you use an error tracking tool or if you want to centralize your logs into one facility.
myLogHandlerFunction = (LogRecord record) {
// do something with the record (ie. send it to Sentry or Fabric)
}

final client = StreamChatClient("stream-chat-api-key", logHandlerFunction: myLogHandlerFunction);
copied to clipboard
Offline storage #
To add data persistence, you can extend the class ChatPersistenceClient and pass an instance to the StreamChatClient.
class CustomChatPersistentClient extends ChatPersistenceClient {
...
}

final client = StreamChatClient(
apiKey ?? kDefaultStreamApiKey,
logLevel: Level.INFO,
)..chatPersistenceClient = CustomChatPersistentClient();
copied to clipboard
We provide an official persistent client in the stream_chat_persistence package.
import 'package:stream_chat_persistence/stream_chat_persistence.dart';

final chatPersistentClient = StreamChatPersistenceClient(
logLevel: Level.INFO,
connectionMode: ConnectionMode.background,
);

final client = StreamChatClient(
apiKey ?? kDefaultStreamApiKey,
logLevel: Level.INFO,
)..chatPersistenceClient = chatPersistentClient;
copied to clipboard
Contributing #
Code conventions #

Make sure that you run dartfmt before you commit your code
Make sure all public methods and functions are well documented

Running tests #

run flutter test

Releasing a new version #


update the package version on pubspec.yaml and version.dart


add a changelog entry on CHANGELOG.md


run flutter pub publish to publish the package


Watch models and generate JSON code #
JSON serialization relies on code generation; make sure to keep that running while you make changes to the library
flutter pub run build_runner watch
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.