Server Code Node JS
My project is everything ok on the local host; I can send SMS, fetch data, etc. Then I deployed on my hosting server. After that, get data from mongoDB properly. Node Js all request handel properl.
However, the socket server connection failed. I attatched error screenshot . enter image description here
const express = require('express')
const mongoose = require('mongoose')
const cors = require('cors');
require('dotenv').config()
const path = require("path")
const app = express();
const port = 5000;
app.use(express.json())
app.use(cors())
const http = require('http')
const Server = require('socket.io').Server
const Message = require('./model/message.mode')
const server = http.createServer(app);
const io = new Server(server,{
cors : {
origin:"*"
}
})
io.on("connection", (socket) =>{
console.log("connection on")
const loadMessages = async () =>{
try{
const messages = await Message.find().sort({Timestamp:1}).exec();
socket.emit("chat", messages)
}
catch(err){
console.log(err)
}
}
loadMessages()
socket.on('newMessage', async(msg) =>{
try{
const newMessageCrt = new Message(msg)
await newMessageCrt.save()
io.emit('message', msg)
}
catch(err){
console.log(err)
}
})
socket.on("disconnect", () =>{
console.log("disconnected")
})
})
server.listen("5001", ()=>{
console.log("socket server is running at 5001")
})
app.get('/', (req, res) => {
res.send("Hello Again")
})
mongoose.connect(`mongodb+srv://${process.env.user}:${process.env.pass}@arefins.mi8bj9m.mongodb.net/?retryWrites=true&w=majority&appName=arefins`)
.then(()=> {
console.log('connent successfully in mongoDB');
app.listen(port, () =>{
console.log(`server run prot in : ${port}`)
})
})
.catch((error)=>{console.log(error)})
Frontend Code From React Component
const WriteSMS = () => {
const socketio = SocketClient("https://localhost:5001/")
const [chats, setChats] = useState([])
useEffect(()=>{
if(!chats?.length){
return;
}
else{
const filtered = chats.filter(item => item.chatId == chatId)
setFiteredSms(filtered)
}
}, [chats, chatId])
useEffect(()=>{
socketio.on("chat", (chats)=>{
setChats(chats)
})
socketio.on('message', (msg) =>{
setChats(previousChats => [...previousChats, msg])
})
return () =>{
socketio.off('chat')
socketio.off('message')
}
}, [])
const sendSocket = (chat) =>{
socketio.emit('chat', chat)
}
const handelSendSms = e =>{
e.preventDefault()
const smsTextInp = e.target.sms_text.value;
const sendAt = new Date().toLocaleTimeString('bd-BD');
const obj= {smsText: smsTextInp, profileId:loggedUserInfo._id, sendAt, chatId, smsType:"text"}
sendSocket([...chats, obj])
socketio.emit('newMessage', obj)
document.getElementById("sms-send-form").reset()
}
}
New contributor
Bayazid Arefin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.