Skip to content

bititude/socketio-chat

Repository files navigation

Socket io chat

A custom socket io server implementation created for chat applications.

Installation

Install the service with npm

  npm i @bititude/socketio-chat

Usage/Examples

With Express app

const express = require('express');
const { ChatService } = require('@bititude/socketio-chat');
const http = require('http');

const app = express();
const server = http.createServer(app);

new ChatService({
    srv: server,
});

server.listen(3000);

Without a server like express

const {ChatService} = require('@bititude/socketio-chat');

new ChatService({
    srv: 3000,
});

Options

ChatService accepts different options

Name Type Required Description
srv Number/HttpServer Yes http server, port
log Boolean No Enable/Disable logs default true
onUserConnect Function No On User connection event listener
onOnlineStatusSend Function No On User online status send event listener
onRoomsJoined Function No On Rooms joined by a user event listener
onMessageRecieved Function No On message recieved event listener
authenticateUser Function No Authentication method

Example

new ChatService({
    srv: 3000,
    onUserConnect: (user: User)=>{
      console.log(user)
    },
    onOnlineStatusSend: (connected: boolean)=>{
      console.log(`User is ${connected? 'connected': 'disconnected'}`)
    },
    onRoomsJoined: (rooms: string[])=>{
      console.log('user joined rooms:', rooms)
    },
    onUserConnect: (message: Message)=>{
      console.log(`A new message recieved from ${message.from}`,message.content)
    },
    authenticateUser: (auth)=>{
      if(auth.token === '#token'){
        return user;
      }
      return null
    }
});

NOTE: if authenticateUser is not passed socketio connection won't be authenticated.

Related

Read more about

Socket.io

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published