**已关闭。**此问题需要debugging details。它目前不接受回答。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答这个问题。
3天前关闭。
Improve this question的
我已经使用MERN堆栈和socket.io构建了一个聊天应用程序。聊天应用程序在localhost中工作正常,但当我在Vercel中部署它时,它在登录帐户并显示聊天主页后连续显示以下错误,我可以选择任何用户并开始聊天。当我开始聊天时,我发送的消息更新较晚,接收方的消息在刷新页面后显示。所有这些问题都不会发生在本地主机上。
这就是错误:获取https://chat-hub-backend.vercel.app/socket.io/?EIO=4&transport=polling&t=OcckO93&sid=6BnH-BzrKy5mDI9RAAAA 400
POST https://chat-hub-backend.vercel.app/socket.io/?EIO=4&transport=polling&t=Occl5Ld&sid=RG1KhmNokwksXDXTAAAE 400
这两个错误是不断出现的。
server.js(代码)
io.on('connection', (socket) => {
global.chatSocket = socket
socket.on('add-user', (userId) => {
onlineUsers.set(userId, socket.id)
})
socket.on('send-msg', (data) => {
// console.log('sendmsg', {data})
const sendUserSocket = onlineUsers.get(data.to)
if(sendUserSocket){
socket.to(sendUserSocket).emit('msg-receive', data.msg)
}
})
})
字符串
客户端(代码)下面的代码定义了套接字初始化
const socket = useRef()
useEffect(() => {
if(currentUser) {
socket.current = io(host)
socket.current.emit('add-user', currentUser._id)
}
}, [currentUser])
型
这是发送消息的代码
const handleSendMsg = async (msg) => {
const data = await JSON.parse(localStorage.getItem('chat-app-user'))
socket.current.emit('send-msg', {
to: currentChat._id,
from: data._id,
msg
})
await axios.post(sendMessageRoute, {
from: data._id,
to: currentChat._id,
message: msg,
})
const msgs = [...messages]
msgs.push({fromSelf: true, message: msg})
setMessages(msgs)
}
useEffect(() => {
if(socket.current) {
socket.current.on('msg-receive', (msg) => {
setArrivalMessage({fromSelf: false, message: msg})
})
}
}, [])
型
有人能帮我解决这个问题吗?
提前致谢
1条答案
按热度按时间yqkkidmi1#
我觉得有一些错误的沟通之间发生的职能。你能看看下面的链接,让我如果它的工作..
https://rohitjangid.hashnode.dev/real-time-data-transfer-between-client-and-server-using-socketio#clkmpk6hi062zlxnvhh7ycq7n?t=1690556281103