A custom socket io server implementation created for chat applications.
Install the service with npm
npm i @bititude/socketio-chat
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);
const {ChatService} = require('@bititude/socketio-chat');
new ChatService({
srv: 3000,
});
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.
Read more about