Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
@icapps/chat-astrum
Advanced tools
Module to create custom chat setup
This module allows to have conversations with one or more recipients into a chat. Socket.io is being used for realtime messages.
Install via npm
npm install @icapps/chat-astrum
or via yarn
yarn add @icapps/chat-astrum
const chat = require('@icapps/chat-astrum');
import * as chat from '@icapps/chat-astrum';
The module uses a MongoDB database combined with mongoose. In order to run everything smoothly you have to make sure a mongoDB is available.
More information on MongoDB
These are related to all MongoDB operations.
Open a connection to MongoDB. This is required to do before trying to fetch any data from other methods below.
db.openConnection('mongodb://localhost:27017/db')
These are related to all socket.io operations
Start a new socket server instance. This should be called before trying to use any other socket methods. This uses a global singleton so you will always have one connection being used throughout all socket functions.
const app = http.createServer(); // Also works with Express server
const connection = socket.startSockerServer(app, {
path: '/socket',
serveClient: false,
...more socket options
});
All options can be found here
More information on socket.io
Add a new namespace onto the socket. Will always check if the namespace already exists and only add when non-existing.
socket.addNamespace('superCoolNamespace');
Find an existing by its id (asynchronous)
await conversation.findConversationById('...');
List all available conversations for a specific department and employment. (asynchronous)
await conversation.findMyConversations({
departmentId: '...',
employmentId: '...',
},
{
limit: 10, // Optional
offset: 0, // Optional
})
Start a new conversation (asynchronous)
await conversation.startConversation({
employmentIds: ['firstId', 'secondId'],
});
Leave a conversation (asynchronous)
await conversation.leave('myConvId', 'myEmplId');
Deletes a conversation (asynchronous)
await conversation.deleteConversation('myConvId');
Mark a conversation as read (asynchronous)
await conversation.markAsRead('myConvId', 'myEmplId');
Adds a meta tag indicating when an employment joined a department conversation
await conversation.addJoinedDepartmentLaterOn('employmentId', ['departmentId']);
Send a message to a specific room (conversation)
await message.sendMessage('myRoomId', {
message: 'This is a message',
senderId: 'specificEmploymentId',
firstName: 'Willem',
lastName: 'Le carrotier',
});
npm run test
to run all testsnpm run test:coverage
to run all tests with coverage reportFAQs
Chat module ESS
We found that @icapps/chat-astrum demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.