У меня есть приложение React Native, которое я собираюсь создавать, используя WebSockets. У меня есть библиотека WebSocket, написанная на JavaScript, и я просто повторно использую ее для этого проекта, что является фантастическим.
Мой вопрос заключается в том, чтобы быть новым для React/React Native, что лучше всего подходит для настройки и поддержки всего трафика, проходящего через WebSocket?
Первоначально моя идея состояла в том, чтобы создать websocket в главном компоненте приложения, примерно так:
export default class App extends Component {
constructor(props) {
super(props);
this.ws = new WebSocket;
}
componentWillMount() {
console.log(this.ws);
}
render() {
console.log("We are rendering the App component.....");
return (
<View style={styles.container}>
<Text style={styles.welcome}>Hello, world</Text>
</View>
);
}
}
Фактический класс WebSocket будет содержать всю соответствующую обработку соединения:
ws.onopen = () => {
// connection opened
ws.send('something'); // send a message
};
ws.onmessage = (e) => {
// a message was received
console.log(e.data);
};
ws.onerror = (e) => {
// an error occurred
console.log(e.message);
};
ws.onclose = (e) => {
// connection closed
console.log(e.code, e.reason);
};
Мой вопрос в том, что, поскольку данные, поступающие через WebSocket, будут применимы для состояния через множество компонентов в приложении React Native, но это не класс, который будет расширять React.Component
, не взаимодействовать ли я с Redux в WebSocket
класс? Переместить всю обработку соединения с WebSocket на компонент App
и отправить туда команды Redux?
Какой общий шаблон здесь для создания экземпляра моего класса WebSocket
и убедитесь, что весь трафик в нем правильно передан в Redux, поэтому все состояние компонента будет правильно выполнено?