【发布时间】:2021-09-14 07:40:42
【问题描述】:
我正在尝试在我的 react-native 应用程序上设置 socket.io-client。我有一个使用 socket.io 的现有 reactjs/nodejs 项目,并且没有任何问题。在服务器端,每次用户连接或断开连接时,我都会使用 console.log。我注意到,当我连接我的 react 本机应用程序时,该应用程序会不断连接和断开与服务器的连接。
BspfKH-4A3-_Wn7nAAAT
BspfKH-4A3-_Wn7nAAAT
ywOdT3kUv9J05wTvAAAU
ywOdT3kUv9J05wTvAAAU
disconnected
disconnected
DNZG27GJmzpXJ1KwAAAV
DNZG27GJmzpXJ1KwAAAV
disconnected
uNZY5N_MIqggI4_BAAAW
uNZY5N_MIqggI4_BAAAW
P_SoiAwdgHjRNTcAAAAX
P_SoiAwdgHjRNTcAAAAX
disconnected
disconnected
00qadKZiqqMfe2MNAAAY
00qadKZiqqMfe2MNAAAY
DcDRnrNTEqhs7U9-AAAZ
在 react-native 中,我查看用户是否有 jwtToken(表明他们已经执行了登录),然后设置套接字。这是我在客户端使用的代码:
import io from "socket.io-client";
function App() {
useEffect(() => {
setTimeout(async() => {
if(await AsyncStorage.getItem('jwtToken') !== null){
console.log("connect")
var socket = io(getURL, {
transports: ['websocket'],
jsonp: false,
'forceNew': true
})
socket.on("new-message", message => console.log(message))
}
}, 1000);
}, []);
.....
当用户尝试在客户端连接时,我会使用 console.log,所以我知道部分代码只会在 react-native 端被调用一次。有什么想法吗?
【问题讨论】: