2.0.3 • Published 4 years ago

@cooperative-computing/node-chat-stream v2.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

Node js Chat Stream

A NodeJS chat library build with socket.io and express js.This Package provide following types of chat:

1-User to user chat

2-User to multi-user chat

3-Group chat

Getting Started

Prerequisites

1-Nodejs
2-Express server
2-MongoDB
3-Socket Io version >= v2.3.0
4-Api Required to fetch user info

API url https://your_app.com/getUsersByIds?ids[]=1&ids[]=2
API response:

{
  users:[
    {
      id:1,
      .....
    }
  ]
}

Installation

1-Run

npm i @cooperative-computing/node-chat-stream
//or
yarn add @cooperative-computing/node-chat-stream

2- Server side import and config:

import { SetChatConfig, StartChat } from ('@cooperative-computing/node-chat-stream');
//(above for es6 ) or
const { SetChatConfig, StartChat } = require('@cooperative-computing/node-chat-stream').NodeChatSteam;

ChatConfig({db_url: 'your_db_url'});  

StartChat(your_project_socket , express_server);

Client Side Flow

1-Install socket io
2-import and socket io config
3-Adde following event listener (also other basic event listener like reconnect ,disconnect)

socket.on("user-message", your_method/function);         
//  for user to user chat
socket.on("multi-user-message", your_method/function);
//  user to multi-user chat
socket.on("group-message", your_method/function);
//  group chat  

4-

socket.emit("node-chat-join", {user_id: 'user_id'});

For sending messages example

socket.on("user-message", {text: 'text',sender: 'sender_id',receiver: 'receiver_id', chat_list_id: 'chat_list_id'});
// chat_list_id is optional in user to user

//  for user to user  
socket.on("multi-user-message", {text: 'text',chat_list_id: 'chat_list_id'});
//  for user to multi-user 
socket.on("group-message", {text: 'text',sender: 'sender_id',chat_list_id: 'chat_list_id'});
//  for group  chat 

REST API Docmentation

https://documenter.getpostman.com/view/12181559/T1DqhdBV?version=latest

Built With

🤝 Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

License

This project is licensed under the MIT License - see the LICENSE file for details.