DeadSimpleChat Flutter Widget
Add Highly Scaleable Chat to your Flutter Application in Minutes with DeadSimpleChat Flutter Chat SDK.
This widget uses a DeadSimpleChatController
to handle the chat operations like sending messages, replying, banning users, and so on. The DeadSimpleChat
widget also provides a wide range of event listeners that you can use to listen to the various events in your chat room.
Features
- Real-time communication.
- Multi-channel support.
- Direct messaging.
- Message history.
- Message reactions.
- User banning/unbanning.
- Customizable UI.
- Translation support.
Installation
To install the DeadSimpleChat, add the following to your pubspec.yaml
:
dependencies:
deadsimplechat_sdk_flutter: latest_version
Usage
To use the DeadSimple Chat widget in your application, first import it.
import 'package:deadsimplechat_sdk_flutter/deadsimplechat_sdk_flutter.dart';
Then, instantiate it with the required parameters:
DeadSimpleChat(
roomId: 'roomId',
publicKey: 'publicKey',
controller: DeadSimpleChatController(),
onMessageReceived: (message) => print('Message received: $message'),
);
Using the DeadSimpleChatController
The DeadSimpleChatController
provides various methods that you can call to perform different actions in your chat room.
Here is a simple usage of the DeadSimpleChatController
:
final chatController = DeadSimpleChatController();
// Call this method to send a message
chatController.sendMessage('Hello, World!');
// Call this method to get the online users
var onlineUsers = await chatController.getOnlineUsers();
// Call this method to get messages
var messages = await chatController.getMessages();
// Call this method to logout
chatController.logout();
Here are the available methods in the DeadSimpleChatController
class:
Method Name | Description | Parameters |
---|---|---|
connect() | Connects to the chat. | None |
joinRoom(JoinOptions options) | Joins a chat room with the specified join options. | options - object containing join options |
getOnlineUsers() | Retrieves the list of online users in the chat. | None |
getMessages(int skip) | Retrieves the messages in the chat, starting from the given skip index. | skip - index to start retrieving messages |
sendMessage(String message) | Sends a chat message to the chat. | message - message to send |
replyMessage(String messageId, String message) | Replies to a specific chat message with the provided message. | messageId - ID of the message message - reply message |
getActiveChannels() | Retrieves the list of active channels in the chat. | None |
selectChannel(String channelId) | Selects a specific channel to display in the chat. | channelId - ID of the channel |
getChannelMessages(String channelId, int skip) | Retrieves the messages in a specific channel, starting from the given skip index. | channelId - ID of the channel skip - index to start retrieving messages |
sendChannelMessage(String message, String channelId) | Sends a message to a specific channel with the provided message and channel ID. | message - message to send channelId - ID of the channel |
replyChannelMessage(String messageId, String channelId, String message) | Replies to a specific channel message with the provided message, message ID, and channel ID. | messageId - ID of the message channelId - ID of the channel message - reply message |
getActiveConversations() | Retrieves the list of active conversations in the chat. | None |
openConversation(String conversationId) | Opens a specific conversation in the chat. | conversationId - ID of the conversation |
createConversation(String userId) | Creates a new conversation with the specified user. | userId - ID of the user |
sendPrivateMessage(String message, String conversationId) | Sends a private message to a conversation with a specific message and conversation ID. | message - message to send conversationId - ID of the conversation |
likeMessage(String messageId, String reaction, String action) | Likes a specific chat message with the specified reaction and action. | messageId - ID of the message reaction - type of reaction action - type of action |
likeChannelMessage(String channelId, String messageId, String reaction, String action) | Likes a specific channel message with the provided channel ID, message ID, reaction, and action. | channelId - ID of the channel messageId - ID of the message reaction - type of reaction action - type of action |
approveMessage(String messageId) | Approves a specific chat message with the given message ID. | messageId - ID of the message |
deleteMessage(String messageId) | Deletes a specific chat message with the given message ID. | messageId - ID of the message |
approveChannelMessage(String messageId, String channelId) | Approves a specific channel message with the given message ID and channelID. | messageId - ID of the message channelId - ID of the channel |
deleteChannelMessage(String messageId, String channelId) | Deletes a specific channel message with the given message ID and channel ID. | messageId - ID of the message channelId - ID of the channel |
banUser(String userId) | Bans a specific user from the chat. | userId - ID of the user |
banIp(String ip) | Bans a specific IP address from the chat. | ip - IP address to ban |
getBannedUsers() | Retrieves the list of banned users in the chat. | None |
unBanUser(String userId) | Unbans a specific user from the chat. | userId - ID of the user |
unBanIp(String ip) | Unbans a specific IP address from the chat. | ip - IP address to unban |
loadCustomization(Object customization) | Loads a customization object to customize the chat appearance. | customization - object containing customization details |
loadTranslation(Object translation) | Loads a translation object to translate the chat. | translation - object containing translation details |
logout() | Logs out the current user from the chat. | None |
JoinOptions
The JoinOptions
class is used to provide joining parameters when using DeadSimpleChatController.joinRoom()
method. Here's an example:
final joinOptions = JoinOptions(
uniqueUserIdentifier: "121",
);
chatController.joinRoom(joinOptions);
or
final joinOptions = JoinOptions(
accessToken: "..accessToken",
);
chatController.joinRoom(joinOptions);
Event Listeners
The DeadSimpleChat
widget provides a variety of event listeners that you can use to listen to events in your chat room. For example, to listen to when a message is received, you can do:
DeadSimpleChat(
// other parameters
onMessage: (message) => print('Message received: $message'),
);
onMessage(Object message)
: Invoked when a new chat message is received.onChannelSelected(String channelId)
: Invoked when a channel is selected in the chat.onRoomJoined(String roomId)
: Invoked when the chat room is joined successfully.onMessageHistory(String messageId)
: Invoked when the message history is fetched successfully.onMessageApproved(String messageId)
: Invoked when a chat message is approved.onMessageDeleted(String messageId)
: Invoked when a chat message is deleted.onUpdateUsers(String userId)
: Invoked when the list of online users is updated.onInvalidRoomPassword(String roomId)
: Invoked when an invalid room password is provided.onRoomLimitReached(String roomId)
: Invoked when the room limit is reached.onNotAuthorized(String errorMessage)
: Invoked when the user is not authorized to perform an action.onMessageLiked(String messageId)
: Invoked when a chat message is liked.onConversationCreated(String userId)
: Invoked when a conversation is created.onConversationMessage(String conversationId)
: Invoked when a conversation message is received.onChannelCreated(String channelId)
: Invoked when a channel is created.onChannelMessage(String channelId)
: Invoked when a channel message is received.onChannelMessageDeleted(String messageId)
: Invoked when a channel message is deleted.onChannelMessageApproved(String messageId)
: Invoked when a channel message is approved.onChannelMessageLiked(String messageId)
: Invoked when a channel message is liked.onConnectError(String errorMessage)
: Invoked when an error occurs while connecting to the chat server.onConnectSuccess(String message)
: Invoked when the chat server connection is successful.onJoinRoomError(String errorMessage)
: Invoked when an error occurs while joining the chat room.onLoadCustomizationSuccess(String message)
: Invoked when the customization is loaded successfully.onLoadCustomizationError(String errorMessage)
: Invoked when an error occurs while loading the customization.onLoadTranslationSuccess(String message)
: Invoked when the translation is loaded successfully.onLoadTranslationError(String errorMessage)
: Invoked when an error occurs while loading the translation.onSendMessageError(String errorMessage)
: Invoked when an error occurs while sending a chat message.
Customizations and Translations
The DeadSimpleChat
widget provides options for customizations and translations. Use DeadSimpleChatController.loadCustomization()
and DeadSimpleChatController.loadTranslation()
methods to load your custom configurations and translations respectively.
chatController.loadCustomization(myCustomization);
chatController.loadTranslation(myTranslation);