在連接 io.on 函式時,我遇到了一個問題(非常沮喪)。我正在關注一個 youtube 教程(https://www.youtube.com/watch?v=3QNBVG2yqKA),其中使用節點 js 和套接字 io 制作了一個聊天應用程式。本教程中的代碼和我的代碼完全匹配(檢查了 100 次),但我的代碼不起作用。
服務器端代碼
//Node server
const io=require('socket.io')(3000);
const users={};
io.on('connection', socket=>{
console.log("hi");
socket.on("new-user-joined",name=>{
console.log("name",name);
users[socket.id]=name;
socket.broadcast.emit("user-joined",name);
});
socket.on("send",message=>{
socket.broadcast.emit("receive",{message: message, name:users[socket.id]});
});
});
客戶端代碼
const socket=io.connect("http://localhost:3000");
const form=document.getElementById("sendContainer");
const msg=document.getElementById("messageInp");
const msgContainer=document.querySelector(".container");
const append=(message,position)=>{
const messageEle=document.createElement("div");
messageEle.innerText=message;
messageEle.classList.add("message");
messageEle.classList.add(position);
msgContainer.append(messageEle);
}
const name1=prompt("Enter your name to join");
socket.emit("new-user-joined", name1);
socket.on("user-joined", name=>{
append(`${name} joined the chat`, "right");
})
服務器端代碼沒有在 const users={} 物件之外運行,我使用控制臺日志進行了測驗
在瀏覽器控制臺中顯示此錯誤
錯誤影像
請幫我解決這個問題。
uj5u.com熱心網友回復:
您需要在啟動應該添加來源的套接字時添加 cors 物件,否則它會阻止請求。
cors: {
origins: [],
},
您可以在此處查看套接字檔案以處理 cors:https ://socket.io/docs/v4/handling-cors/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/479286.html
標籤:javascript 节点.js 网络 网络套接字 套接字.io
上一篇:如何減慢此選單的速度
