0.3.7 • Published 6 months ago

chat-app-demo-abc v0.3.7

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

Welcome to ChatLib with socket.io

This documentation provides an overview of the Chat , Networkclass and its methods.

Table of Contents

Installation

npm install axios socket.io-client chat-app-demo-abc --save

or

yarn add axios socket.io-client chat-app-demo-abc

We need to install axios socket.io-client before using libs

Methods

Default api response

 {
       "data": "response api", // response all api
       "success": true, // status api true: success, false : have error
     }

Error definition

  • header status:
    • 200: success
    • 400: bad request
    • 401: Unauthorized
    • 404: Not Found
    • 500, 501: Server Error
  • response error:
{
  "error": {
    "code": "string", // code error
    "message": "string", // message
    "details": "string", // detail error
    "data": {
      "additionalProp1": "string", // It cannot determined
      "additionalProp2": "string",
      "additionalProp3": "string"
    },
    "validationErrors": [
      {
        "message": "string",
        "members": [
          "string"
        ]
      }
    ]
  }
}

Chat

MethodDescription
connectCreate connections
disconnetStop connections
sendMessagesend message with group
updateMessageupdate message with group
receiveMessageListens for incoming mes
receiveDeleteMessageListens for incoming mes delete
setMessageSeenStatusSets the "message seen"

sendMessage

Listens for incoming chat messages and invokes a callback function when a new message is received.

chat.sendMessage(
  {
    message: '', // message sent
    attachments: [
      {
        name: '', // name file
        desciption: '',
        id: '', // id attachments (send id = null or '')
        url: '', // url file
        typeAttachment: 1, // - video = 1,  // - audio = 2// - image = 3// - file = 4 // - other = 5
        sizeByte: 0,
        durationSeconds: 0,
        revoke: 1, // 1 revoke for sender, 2 revoke for all group
      },
    ],
    forwardFromRoomId: '',
    mentionIds: [], // list userId mention
    type: 0, //type message list in here:
    // - text = 0
    // - audio = 1
    // - file = 2
    // - sticker = 3
    // - gallery = 4
    // - video = 5
    quoteMessageId: '', // message quote id
    forwardMessageId: '', // message forward id
  },
  id
);

ListRoomChat

Listens for incoming chat messages and invokes a callback function when a new message is received.

chat.receiveMessage(message  => {
});
// response in socket message
{
  "attachments": [], // list file
  "forwardFromMessageId": "", // id message forward
  "forwardFromRoomId": "", // id room message forward
  "mentionIds": [], // list userId mention
  "message": "Test",
  "messageId": "", // id message
  "quoteFromMessageId": "", // id message for quote
  "roomId": "", // room id
  "senderId": "", //userid sender
  "senderProfile": {
    "avatar": "", // url avatar
    "displayname": "", // name
    "id": "", // userid sender
    "username": "" // username
  },
  "timeSend": "2023-09-28T09:10:46.783Z",
  "type": 0     //type message list in here:
                // - text = 0
                // - audio = 1
                // - file = 2
                // - sticker = 3
                // - gallery = 4
                // - video = 5
}

note: Before using it, you have to initialize the data retrieval function.

import {
  ChatUser,
  Chat,
  InitChatSocket,
  InitChatMagement,
} from 'chat-app-demo-abc';
// auth config
const chatUser = InitChatUser(url, token); // url auth (http://123.30.145.67:14100/) . token : your access token (string)
or;
const chatUser = new ChatUser(url, token);
// auth message reader
const apiMessage = InitMessageReader(url, token); // url auth (http://123.30.145.67:14103/) . token : your access token (string)
or;
const apiMessage = new MessageReader(url, token);

// chat management
const apiManage = new ChatMagement('url_chat_manager', token); // url http://123.30.145.67:14101/
or;
const apiManage = InitChatMagement('url_chat_manager', token);
// chat management
const chat = new InitChatSocket('url_chat_soket', token); // url http://123.30.145.67:14110/
or;
const chat = ChatSocket('url_chat_socket', token);
  • Except for the login function, you need to pass the token for all other functions.
  • authUrl, messageReaderUrl, ChatManageUrl: You only need to pass one of the three. Use the cluster's URL you're using.

Auth

MethodParamsDescription
LoginuserName:String, passWord: stringget token using to conect chat

Login

const result = await ChatUser.login(param);


// param request
{
  "userName": "string", //email account login
  "passWord": "string",  // password
  "pushToken": "string"// pushtoken is device token in firebase
}

//response
{
  "access_token": "", // token access chat (you can using jwt_decode access_token to get info user)
  "refresh_token": ""
  "expires_in": 0, // expires time
  "token_type": "Bearer", // type Authorization
  "scope": "Auth offline_access"
}
// this way to get info user
import jwt_decode from "jwt-decode";
 var infoUser = jwt_decode(access_token);

note: if you need get info user ex: useId, name... you have to instal jwt-decode to decode access_token then you have it

register

const result = await ChatUser.register(param);


// param request
{
  "username": "string",
  "email": "string",
  "phoneNumber": "string",
  "gender": 0,
  "avatar": "string", // url avatar (optional)
  "dateOfBirth": "2023-10-06T02:43:24.154Z",
  "password": "string",
  "image": { // optional
    "fileId": "string", // file id get from api upload(optional)
    "fileName": "string", // name file (optional)
    "extension": "string", // extension file
    "fileUrl": "string", // url file
    "contentType": "string"
  },
  "isAdmin": false // status is admin default false
}

//response
{
   "userId": "string", // user id
  "access_token": "", // token access chat (you can using jwt_decode access_token to get info user)
  "refresh_token": ""
  "expires_in": 0, // expires time
  "token_type": "Bearer", // type Authorization
  "scope": "Auth offline_access"
}
// this way to get info user
import jwt_decode from "jwt-decode";
 var infoUser = jwt_decode(access_token);

listUserContactAdd

find list user by contact(phone)

const param = ['09xxx', '08xxx'];
const result = await chatUser.listUserContactAdd(param);

//response
[
  {
    id: '3fa85f64-5717-4562-b3fc-2c963f66afa6', // userId
    name: 'string', // name
    avatar: 'string', // url avatar
    email: 'string', // email user
    phoneNumber: 'string', // phone user
    gender: 0, // gender 0: male, 1: female
    dateOfBirth: '2023-10-06T02:46:24.015Z',
    isFriend: true, // status is friend
    distance: 0, // distance(km)
  },
];

searchFriends

find friends

const result = await chatUser.searchFriends(param);

// param request
{
  "GroupId": "string",
  "Filters": "string", // string search
  "phoneNumber": "string",
  "Sorting": "ASC",
  "SkipCount": 0,
  "MaxResultCount": 0,

}

//response
{
  "items": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // userId
    "name": "string", // name
    "avatar": "string", // url avatar
    "email": "string", // email user
    "phoneNumber": "string", // phone user
    "gender": 0, // gender 0: male, 1: female
    "dateOfBirth": "2023-10-06T02:46:24.015Z",
    "isFriend": true, // status is friend
    "distance": 0 // distance(km)
    }
  ],
  "pageSize": 0,
  "totalCount": 0
}

userDoAction

User action(add friend, unfriend, block , unblock)

const result = await chatUser.userDoAction(param);

// param request
{
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",// userid user
  "actionType": 0 // 0: add friend, 1: unfriend, 2: block , 3 unblock
}
}

//response
{
 "success":true //
}

listFriends

const result = await chatUser.listFriends(param);

// param request
{
  "GroupId": "string",
  "Filters": "string", // string search
  "phoneNumber": "string",
  "Sorting": "ASC",
  "SkipCount": 0,
  "MaxResultCount": 0,

}

//response
{
  "items": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // userId
    "name": "string", // name
    "avatar": "string", // url avatar
    "email": "string", // email user
    "phoneNumber": "string", // phone user
    "gender": 0, // gender 0: male, 1: female
    "dateOfBirth": "2023-10-06T02:46:24.015Z",
    "isFriend": true, // status is friend
    "distance": 0 // distance(km)
    }
  ],
  "pageSize": 0,
  "totalCount": 0
}

Message management

ListRoomChat

Retrieves a list of chat rooms in which a user has participated.

const param = { userId: '', skip: 0, take: 20 };
const result = await apiManage.ListRoomChat(param);
// param request
{
  "userId": "string", // userId (can be null default get by token)
  "groupName":"", // name group
  "tagFilter": null, // number 1,2,3
  "skip": 0,  // point start record
  "take": 0// The number of records retrieved
}
// response
{
  "items": [
    {
      "id": "string", //id room chat
      "createdOn": "2023-09-28T07:35:34.233Z",
      "name": "string", // name room chat
      "typeOfGroup": 0, // type group: 0: group, 1: direct, 2: support
      "topic": "string", // topic group(canbe null)
      "description": "string", // desc group (can be null)
      "image": "string", // url image room
      "ownerId": "string", // id user owner group
      "participantCount": 0, // total participant
      "lastMessage": {
        "id": "string", // id message
        "message": "string",
        "userId": "string", // userid send send
        "userName": "string", // name sender
        "fullName": "string", // full name sender
        "nickName": "string", //
        "avatar": "string",// url avata
        "time": "2023-09-28T07:35:34.233Z",
        "attachments": [
          {
            "name": "string", // name file
            "desciption": "string", //
            "id": "string", // id attachments
            "url": "string", // url file
            "urlPreView": "string",
            "typeAttachment": 1, //  // - video = 1,  // - audio = 2// - image = 3// - file = 4 // - other = 5
            "messageId": "string",
            "sizeByte": 0, // size file
            "durationSeconds": 0,
            "revoke": 1 // 1 revoke for sender, 2 revoke for all group
          }
        ],
        "type": 0,
        "isEdited": true,// status edit
        "lastEditTime": "2023-09-28T07:35:34.233Z",
        "isDeleted": true // status delete
      },
      "participantInfo": { // Only available for one-on-one chats This is information about the remaining person in the room
        "userId": "string", // userId
        "userName": "string", // username
        "fullName": "string", // fullname
        "nickName": "string", // nickname
        "avatar": "string", // url avata
        "onlineStatus": 0, //status online 0 offline, 1 online
      },
      "hasUnreadMessage": true, // status unread message
      "unreadCount": 0,// total message unread
      "isFavorite": true, // status favorite
      "tags": [
        "string"
      ], // list tags group
      "notifyStatus": true, // status get notification
      "leaveGroupHistories": [
        {
          "participant": "string", // userid leave group
          "timeLeave": "2023-09-28T07:35:34.233Z"
        }
      ]
    }
  ],
  "totalCount": 0
}

searchRoomChat

Searches for chat rooms based on specified criteria.

const result = await apiManage.searchRoomChat(param);
// param request
{
  "roomType":"", // 0,1,2
  "filter": '', // string filter
  "skip": 0,  // point start record
  "take": 0// The number of records retrieved
}
//response
{
  "items": [
    {
      "id": "string",// id room
      "name": "string", // name room
      "roomType": 0, // type room default =0 (group)
      "topic": "string",
      "image": "string", // url
      "participants": [
        "string"
      ],
      "participantCount": 0 // total participant
    }
  ],
  "totalCount": 0
}

getTotalUnread

Searches for chat rooms based on specified criteria.

const  result = await  apiManage.getTotalUnread();
// response
{"DIRECT": 0, "GROUP": 0, "SUPPORT": 0} // total message unread by type group

groupParticipants

Searches for chat rooms based on specified criteria.

const result = await apiManage.groupParticipants(groupId, param);
// param request
{
  "skip": 0,  // point start record
  "take": 0// The number of records retrieved
}

// response
{
  "items": [
    {
      "userId": "string", // userid
      "userName": "string", // username account
      "surName": "string", // surname
      "name": "string", // name user
      "nickName": "string", // nickname
      "avatar": "string", // url avata
      "onlineStatus": 0, // status online
      "isAdmin": true. // status roler
    }
  ],
  "totalCount": 0
}

getInfoRoomChat

Searches for chat rooms based on specified criteria.

const result = await apiManage.getInfoRoomChat(groupId);
// param request

  groupId: "" // id group chat


// response
{
  "id": "string", // id group chat
  "createdOn": "2023-09-28T08:28:16.072Z",
  "name": "string", // name group
  "roomType": 0, //deprecated
  "typeOfGroup": 0, // type of group default 0 , 0: group, 1: direct, 2: support
  "topic": "string",
  "description": "string", // desc room
  "image": "string", // url room
  "ownerId": "string", // id owner
  "participants": [
    "string"
  ],
  "participantCount": 0,
  "lastMessage": {
    "id": "string",
    "message": "string",
    "userId": "string",
    "userName": "string",
    "fullName": "string",
    "nickName": "string",
    "avatar": "string",
    "time": "2023-09-28T08:28:16.072Z",
    "attachments": [
      {
        "name": "string",
        "desciption": "string",
        "id": "string",
        "url": "string",
        "urlPreView": "string",
        "typeAttachment": 1,
        "messageId": "string",
        "sizeByte": 0,
        "durationSeconds": 0,
        "revoke": 1
      }
    ],
    "type": 0,
    "isEdited": true,
    "lastEditTime": "2023-09-28T08:28:16.072Z",
    "isDeleted": true
  },
  "participantInfo": {
    "userId": "string",
    "userName": "string",
    "fullName": "string",
    "nickName": "string",
    "avatar": "string",
    "onlineStatus": 0
  },
  "unreadCount": 0,
  "hasUnreadMessage": true, // status unread message. true have message unread
  "isLinkEnabled": true,
  "inviteLinkKey": "string", // url invite
  "labelAllows": [
    "string"
  ],
  "statusAllows": [
    "string"
  ], // list status allows
  "sexAllows": [
    "string"
  ], // list sex allows
  "maxAgeAllow": 0, // age max allow
  "minAgeAllow": 0, // age min allow
  "isPrivate": true, // status prive
  "localtionAllows": [
    "string"
  ], // list location allow
  "isAdminApprove": true // status who can approve join
}

createRoomChat

Searches for chat rooms based on specified criteria.

const result = await apiManage.createRoomChat(param);
// param request

{
  "name": "string", // name group
  "roomType": 0, // deprecated
  "typeOfGroup": 0, // type group 0.1.2, default 0
  "topic": "string",
  "description": "string",
  "image": "string", // url image group
  "ownerId": "string", // id user owner group
  "participants": [
    "string"
  ], // list userid
  "tags": [
    "string"
  ],
  "sendDefaultMessage": true, //status send default message
  "defaultMessageContent": "string" // message default
}


// response
{
  "id": "string", // id group chat
}

updateInfoRoom

Searches for chat rooms based on specified criteria.

const result = await apiManage.updateInfoRoom(param);
// param request
{
  "name": "string",
  "topic": "string",
  "description": "string",
  "image": "string"
}


// response
// method put success: 200 in header status
// error

deleteChatRoom

Searches for chat rooms based on specified criteria.

const result = await apiManage.deleteChatRoom(roomId);
// param request
"roomId":'' // room id


// response
// method  delete success: 200 in header status
// error

joinChatGroup

Searches for chat rooms based on specified criteria.

const result = await apiManage.joinChatGroup(groupId, userId);
// param request
{
  "groupId": "string",
  "userId": "string"
}


// response
// success: 200 in header status

inviteChatGroup

Searches for chat rooms based on specified criteria.

const result = await apiManage.inviteChatGroup(param);
// param request

{
  "groupId": "string", // id room
  "userId": [
    "string"
  ] // list userId invite
}


// response
// success: 200 in header status

inviteChatGroup

Searches for chat rooms based on specified criteria.

const result = await apiManage.removeUserChatGroup(param);
// param request

{
  "groupId": "string",
  "userId": "string"
}


// response
// success: 200 in header status

Message reader management

chatHistory

Retrieves the chat history of a group.

const param = { userId: '', skip: 0, take: 20 };
const result = await apiMessage.chatHistory(roomid, param);
// param request
{
  "before":"", //
  "after": '', //messageid after
  "isPined":null,  //boolean, true message pined
  "skip": 0,  // point start record
  "take": 0// The number of records retrieved
}
//response
{
  "skip": 0,
  "take": 0,
  "messages": [
    {
      "id": "", // id message
      "messageContentRaw": "",// content message
      "message": "string",// content message
      "timeSend": "2023-09-28T09:08:34.878Z",
      "senderId": "string", // userId sender
      "roomId": "string", // room id
      "mentionsIds": [
        "string" // list userid
      ],
      "receiperId": "string", //
      "reactions": [
        {
          "reactorId": "string",
          "reactCode": "string"
        }
      ],
      "attachments": [
        {
          "name": "string",
          "desciption": "string",
          "id": "string",
          "url": "string",
          "urlPreView": "string",
          "typeAttachment": 1,
          "messageId": "string",
          "sizeByte": 0,
          "durationSeconds": 0,
          "revoke": 1
        }
      ],
      "type": 0,    /// - text = 0
				    /// - audio = 1
				    /// - file = 2
				    /// - sticker = 3
				    /// - gallery = 4
				    /// - video = 5
      "revokeEnum": 1,
      "isDeleted": true,
      "isEdited": true,
      "lastEditTime": "2023-09-28T09:08:34.878Z",
      "countValue": 0,
      "isSave": true, // status save
      "isPined": true, // status pinner
      "isPinedById": "string",
      "lastPinedTime": "2023-09-28T09:08:34.878Z"
    }
  ],
  "users": [
    {
      "id": "string",
      "avatar": "string",
      "roles": [
        "string"
      ],
      "username": "string",
      "nickName": "string",
      "displayName": "string",
      "defautlStatus": 0,
      "isOnline": true
    }
  ],
  "lastReadMessageId": "string",// message read lastest
  "userSendLastRead": "string",
  "lastReadMessageTimeSend": "2023-09-28T09:08:34.878Z"
}

lastMessageUserGroup

Retrieves the last read message of a user in a group.

const result = await apiMessage.lastMessageUserGroup(param);
// param request
{
  "roomId":"", // Id of group
  "userId": '', //Id of user to check
}
// response
{
  "lastReadMessageId": "string", // id mess last read
  "userSendLastRead": "string",// userid last read mes
  "lastReadMessageTimeSend": "2023-09-28T09:38:52.883Z"
}

historyAttachment

Retrieves the history of attachments in a group.

const result = await apiMessage.historyAttachment(roomId, param);
// param request
{
  "before":"", //
  "after": '', //messageid after
  "types": [],  // -   VIDEO = 1,AUDIO = 2,IMAGE = 3,FILE = 4,OTHER = 5

  "skip": 0,  // point start record
  "take": 0// The number of records retrieved
}

// response
{
  "skip": 0,
  "take": 0,
  "messages": [
    {
      "id": "string",
      "messageContentRaw": "string",
      "message": "string",
      "timeSend": "2023-09-28T09:39:43.708Z",
      "senderId": "string",
      "roomId": "string",
      "mentionsIds": [
        "string"
      ],
      "receiperId": "string",
      "reactions": [
        {
          "reactorId": "string",
          "reactCode": "string"
        }
      ],
      "attachments": [
        {
          "name": "string",
          "desciption": "string",
          "id": "string",
          "url": "string",
          "urlPreView": "string",
          "typeAttachment": 1,
          "messageId": "string",
          "sizeByte": 0,
          "durationSeconds": 0,
          "revoke": 1
        }
      ],
      "type": 0,
      "revokeEnum": 1,
      "isDeleted": true,
      "isEdited": true,
      "lastEditTime": "2023-09-28T09:39:43.708Z",
      "countValue": 0,
      "isSave": true,
      "isPined": true,
      }]
}

searchMessegeInGroup

Retrieves the history of message in a group.

const result = await apiMessage.searchMessegeInGroup(roomId, param);
// param request
{
  "textSearch": '',  //  text search
  "skip": 0,  // point start record
  "take": 0// The number of records retrieved
}

// response
{
  "messageId": "string", // id message
  "message": "string", // message
  "textSearch": "string",
  "messageIds": [
    "string"
  ], //list message id
  "messages": [
    {
      "id": "string",
      "messageContentRaw": "string",
      "message": "string",
      "timeSend": "2023-09-28T09:56:34.615Z",
      "senderId": "string",
      "roomId": "string",
      "mentionsIds": [
        "string"
      ],
      "receiperId": "string",
      "reactions": [
        {
          "reactorId": "string",
          "reactCode": "string"
        }
      ],
      "attachments": [
        {
          "name": "string",
          "desciption": "string",
          "id": "string",
          "url": "string",
          "urlPreView": "string",
          "typeAttachment": 1,
          "messageId": "string",
          "sizeByte": 0,
          "durationSeconds": 0,
          "revoke": 1
        }
      ],
      "type": 0,
      "revokeEnum": 1,
      "isDeleted": true,
      "isEdited": true,
      "lastEditTime": "2023-09-28T09:56:34.615Z",
      "countValue": 0,
      "isSave": true,
      "isPined": true,
      "isPinedById": "string",
      "lastPinedTime": "2023-09-28T09:56:34.615Z"
    }
  ],
  "users": [
    {
      "id": "string",
      "avatar": "string",
      "roles": [
        "string"
      ],
      "username": "string",
      "nickName": "string",
      "displayName": "string",
      "defautlStatus": 0,
      "isOnline": true
    }
  ],
  "skip": 0,
  "take": 0,
  "totalCountFinded": 0
}

getHistoryAroundMessage

Retrieves the history of attachments in a group.

const result = await api.getHistoryAroundMessage(param);
// param request
{
"roomId": '', // roomid search
"messageId": '', // messageid
"take": 10  // The number of records retrieved: default 10

}
// response

{
  "messageId": "string",
  "takeOffset": 0,
  "messages": [  //Similar to the description defined above
    {
      "id": "string",
      "messageContentRaw": "string",
      "message": "string",
      "timeSend": "2023-10-05T06:59:31.990Z",
      "senderId": "string",
      "roomId": "string",
      "mentionsIds": [
        "string"
      ],
      "receiperId": "string",
      "reactions": [
        {
          "reactorId": "string",
          "reactCode": "string"
        }
      ],
      "attachments": [
        {
          "name": "string",
          "desciption": "string",
          "id": "string",
          "url": "string",
          "urlPreView": "string",
          "typeAttachment": 1,
          "messageId": "string",
          "sizeByte": 0,
          "durationSeconds": 0,
          "revoke": 1
        }
      ],
      "type": 0,
      "revokeEnum": 1,
      "isDeleted": true,
      "isEdited": true,
      "lastEditTime": "2023-10-05T06:59:31.990Z",
      "countValue": 0,
      "isSave": true,
      "isPined": true,
      "isPinedById": "string",
      "lastPinedTime": "2023-10-05T06:59:31.990Z"
    }
  ],
  "users": [
    {
      "id": "string",
      "avatar": "string",
      "roles": [
        "string"
      ],
      "username": "string",
      "nickName": "string",
      "displayName": "string",
      "defautlStatus": 0,
      "isOnline": true
    }
  ]
}

getLastMessagePined

Retrieves the history of attachments in a group.

const result = await api.getLastMessagePined(roomid);
// param request

// path : roomid

// response

{
  "messages": [ // Similar to the description defined above
    {
      "id": "string",
      "messageContentRaw": "string",
      "message": "string",
      "timeSend": "2023-10-05T06:58:45.318Z",
      "senderId": "string",
      "roomId": "string",
      "mentionsIds": [
        "string"
      ],
      "receiperId": "string",
      "reactions": [
        {
          "reactorId": "string",
          "reactCode": "string"
        }
      ],
      "attachments": [
        {
          "name": "string",
          "desciption": "string",
          "id": "string",
          "url": "string",
          "urlPreView": "string",
          "typeAttachment": 1,
          "messageId": "string",
          "sizeByte": 0,
          "durationSeconds": 0,
          "revoke": 1
        }
      ],
      "type": 0,
      "revokeEnum": 1,
      "isDeleted": true,
      "isEdited": true,
      "lastEditTime": "2023-10-05T06:58:45.318Z",
      "countValue": 0,
      "isSave": true,
      "isPined": true,
      "isPinedById": "string",
      "lastPinedTime": "2023-10-05T06:58:45.318Z"
    }
  ],
  "users": [
    {
      "id": "string",
      "avatar": "string",
      "roles": [
        "string"
      ],
      "username": "string",
      "nickName": "string",
      "displayName": "string",
      "defautlStatus": 0,
      "isOnline": true
    }
  ],
  "total": 0
}

Optional

if you don't have server saved files(audio, image, gift, video) you can using this server for that

const formData = new FormData(form);

// url: http://123.30.145.67:14104/file/upload

const result = await ChatUser.upload('url_server_upload', formData);

Usage

Connect and receive

import { ChatSocket } from 'chat-app-demo-abc';

const ChatScreen = () => {
  const chat = new ChatSocket('url_socket', token);

  useEffect(() => {
    chat.connect();
    chat.receiveMessage((message) => {
      //
    });

    return () => {
      chat.disconnect();
    };
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);
  const sendMessage = () => {
    const param = {
      message: 'text test',
      attachments: [],
      forwardFromRoomId: '',
      mentionIds: [],
      type: 0,
      quoteMessageId: '',
      forwardMessageId: '',
    };
    chat.sendMessage(param, id);
  };
};

login

const api = InitChatAuth({
  authUrl: 'http://123.30.145.67:14100/',
  token: '',
});
const handelLogin = useCallback(async () => {
  const result = await api.Login({
    passWord: 'paasword',
    userName: 'username',
  });
  setToken(result.access_token);
}, [api]);
0.3.7

6 months ago

0.3.6

7 months ago

0.3.5

7 months ago

0.3.4

7 months ago

0.3.3

7 months ago

0.3.2

7 months ago

0.3.1

7 months ago

0.3.0

7 months ago

0.2.9

7 months ago

0.2.8

7 months ago

0.2.7

7 months ago

0.2.6

7 months ago

0.2.5

7 months ago

0.2.4

7 months ago

0.2.3

7 months ago

0.2.2

7 months ago

0.2.1

7 months ago

0.2.0

7 months ago

0.1.9

7 months ago

0.1.8

7 months ago

0.1.6

7 months ago

0.1.5

7 months ago

0.1.4

8 months ago

0.1.3

8 months ago

0.1.2

8 months ago

0.1.1

8 months ago

0.1.0

8 months ago