当我的应用丢失并重新连接到Internet时,我无法再次连接到SignalR Hub。除非我关闭应用程序然后再次打开。
import React, { Component } from 'react';
import { StyleSheet, TouchableWithoutFeedback, Keyboard, Text, View, TouchableOpacity, Image, Alert, TextInput, FlatList, Button, RefreshControl } from 'react-native';
import * as signalR from '@aspnet/signalr';
const hubUrl = '/chatHub';
let hub = new signalR.HubConnectionBuilder()
.withUrl(hubUrl)
.configureLogging(signalR.LogLevel.Information)
.build();
hub.start();
有人可以教我丢失后如何重新连接SignalR Hub吗?谢谢!
答案 0 :(得分:0)
您可以在React-native中使用NetInfo
import { NetInfo } from "react-native"
已过时。请改用react-native-community/react-native-netinfo
。
您可以运行npm install --save @react-native-community/netinfo
和react-native link @react-native-community/netinfo
import NetInfo from "@react-native-community/netinfo";
componentDidMount() {
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectionChange);
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectionChange);
}
handleConnectionChange = (isConnected) => {
this.setState({ status: isConnected });
if (isConnected !== "none" || isConnected !== "unknown") {
hub.start();
}
}
答案 1 :(得分:0)
所以我使用hub connectionState
进行检查并调用hub.start()
效果很好