chatstorm
Version:
ChatStorm - Real-Time Chat Server for Your App. ChatStorm is a powerful, lightning-fast Socket.io-based chat server that enables seamless real-time messaging in your application. Whether you're building a messaging app, live chat feature, or a collaborati
60 lines (55 loc) • 1.82 kB
JavaScript
const socketIo = require("socket.io");
const socketController = require("./controller");
const animatelogger = require("../Config/rainbow");
require("dotenv").config();
module.exports = async (server) => {
const io = socketIo(server, {
cors: {
origin: "*",
methods: ["GET", "POST"],
allowHeaders: ["Authorization"],
credentials: true,
},
});
animatelogger("Socket are connected successfully");
io.use(socketController.validateUser);
io.on("connection", (Socket) => {
Socket.on("joinchat", async (data) =>
socketController.joinChat(Socket, io, data)
);
Socket.on("get_chatlist", async (data) =>
socketController.getChatlist(Socket, io, data)
);
Socket.on("chat_message", async (data) =>
socketController.getOldChat(Socket, io, data)
);
Socket.on("send_message", async (data) =>
socketController.sendMessage(Socket, io, data)
);
Socket.on("delete_message", async (data) =>
socketController.deleteMessage(Socket, io, data)
);
Socket.on("user_typing", async (data) =>
socketController.updateTypingAlert(Socket, io, data)
);
// Video call routes
Socket.on("call-user", async (data) =>
socketController.calltoUser(Socket, io, data)
);
Socket.on("ice-candidate", async (data) =>
socketController.handleCandidate(Socket, io, data)
);
Socket.on("answer-call", async (data) =>
socketController.AnswerCall(Socket, io, data)
);
Socket.on("reject-call", async (data) =>
socketController.rejectCall(Socket, io, data)
);
Socket.on("leave-call", async (data) =>
socketController.leaveCall(Socket, io, data)
);
Socket.on("disconnect_user", async (data) =>
socketController.disconnectHandshake(Socket, io, data)
);
});
};