Chat Engine is a free serverless chat API.
Try our free plan at chatengine.io
Add serverless chat to your React app in 3 minutes.
Register then create a project and user at chatengine.io
Collect the public key, username and user password
Install yarn add react-chat-engine
Import the ChatEngine
component and pass in publicKey
, userName
, and userSecret
props
Voila! You're done
EXAMPLE: Your implementation should look like the following
import React from 'react'
import { ChatEngine } from 'react-chat-engine'
export function App() {
return (
<ChatEngine
publicKey={'b75e5bd5-cd84-404c-b820-06feff8c98c0'}
userName={'john_smith'}
userSecret={'secret_1234'}
/>
)
}
publicKey
(UUID REQUIRED) - Public API key for your chatengine.io projectuserName
(String REQUIRED) - Username of a person in this projectuserSecret
(String REQUIRED) - Set a secret for this person and use it to authenticate.onConnect
(Function) - Callback when the connection/authentication is completeonFailAuth
(Function) - Callback when the connection/authentication failsonGetChats
(Function) Callback when the person fetches their chats arrayonNewChat
(Function) - Callback when the person creates a new chatonEditChat
(Function) - Callback when the person edits a chat titleonDeleteChat
(Function) - Callback when the person deletes one of their chats (must the chat's admin)onAddPerson
(Function) - Callback when a person is added to a chatonRemovePerson
(Function) - Callback when a person is removed/deleted from a chatonGetMessages
(Function) - Callback when the person gets a chat's messagesonNewMessage
(Function) - Callback when a person posts a new message in one of the chatsonEditMessage
(Function) - Callback when a person edits a new message in one of the chatsonDeleteMessage
(Function) - Callback when a person deletes a new message in one of the chatshideUI
(Boolean) - Hides all UI components for a custom implementation (Warning: Advanced)import { functionName } from 'react-chat-engine'
...
functionName(conn, args)
getChats
(conn) => void - Get a person's array of chatsnewChat
(conn, title) => void - Create a new chat with this person as admineditChat
(conn, chatId, chatObj) => void - Edit the title of an existing chatdeleteChat
(conn, chatId) => void - If you're admin, delete this existing chataddPerson
(props, chatId, userName) => void - Add an existing person (in the project) to an existing chatremovePerson
(props, chatId, userName) => void - If you're admin, remove this user from an existing chatgetMessages
(props, chatId) => void - Get the messages for an existing chatsendMessage
(props, chatId, messageObj) => void - Send a new message object into this chateditMessage
(props, chatId, messageId, messageObj) => void - Edit an exiting message object in this chatdeleteMessage
(props, chatId, messageId) => void - Delete an exiting message object from this chatid
(int) - Unique primary key to identify this chatadmin
(String) - Unique username of the person who created this chattitle
(String) - Optional title of this chatcreated
(Datetime) - Date-time of chat creationpeople
(Array) - Array of people added to this chat{
"id": 1,
"admin": "john_smith",
"title": "Canada Day Party!",
"created": "2020-09-05T20:28:22.352373Z",
"people": [
{
"person": "john_smith"
}
]
}
person
(String) - Unique username of a person involved in this chat{ person: "john_smith" }
id
(int) - Unique primary key to identify this messagesender
(String) - Unique username of the person who sent this messagetext
(String) - Contents of the message sentcreated
(Datetime) - Date-time of message creation{
"id": 1,
"sender": "john_smith",
"text": "Hey let's party!",
"created": "2020-09-07T13:20:26.936400Z"
}