- The real-time implementation of this Chat application is done using Web Sockets development technique.
- For End-to-end Encryption, I have made use of the Signal Protocol at the client side. Refer the link mentioned below for the Client Application.
- NodeJS
- Express
- TypeScript
- MongoDB
- Web Sockets
- HTTP protocol upgrade to websocket (101 status code)
import * as http from ‘http’
export default class WebSockets {
public static wsServer: any
static init(server: http.Server): void {
const WebSocketServer = require("websocket").server
this.wsServer = new WebSocketServer({
"httpServer": server
})
}
}
- Sending and Receiving of Messages to/from my Client Application build in React
wsServer.on(‘request',request => {
const connection = request.accept(null, request.origin);
connection.on(‘message’, message => {
console.log('Received Message:', message.utf8Data);
connection.sendUTF('Hi this is WebSocket server!');
});
connection.on('close',(reasonCode, description) => {
console.log('Client has disconnected.');
});
});
- Apidoc integrated for better api documentation
- Dummy cron job
- Dummy controller, router, models configured.
- Basic JWT setup.
- Development and production environment setup for easy of use
PRs and issues are most welcome