我在第二次使用效果時收到“預期分配或函式呼叫,而是看到運算式”錯誤,它正確找到了套接字埠,我執行 socket.on 錯誤嗎?套接字服務器正確啟動,我什至讓我的控制臺登錄 index.js 輸出“用戶已連接”
const [socket, setSocket] = useState(null)
useEffect(() => {
setSocket(io("ws://localhost:8900"))
}, [])
useEffect(() => {
socket?.on("welcome", (message) => {
console.log(message)
})
}, [socket])
用于套接字的 index.js
const io = require("socket.io") (8900, {
cors: {
origin: "http://localhost:3000",
}
})
io.on("connection", (socket) =>{
console.log("a user is connected")
io.emit("welcome","hello this is socket server")
})
編輯:更奇怪的是,“你好,這是一個套接字服務器”實際上是控制臺日志,然后這個錯誤仍然發生......不知道為什么......
uj5u.com熱心網友回復:
找出我的問題,如果您在反應中使用 useEffect ,則使用 socket.current 設定套接字,如果您只是做一個 const socket ,那很好。它們將是任何重繪 或更新時的套接字問題,導致嘗試使用不同的 socketId 呼叫舊套接字的錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471932.html
標籤:javascript 反应 插座 网络套接字
