Reactjs 单个websocket连接,用于跨组件和存储
我有一个mobx存储,它存储来自服务器的所有数据 //stores.jsReactjs 单个websocket连接,用于跨组件和存储,reactjs,react-native,websocket,mobx,Reactjs,React Native,Websocket,Mobx,我有一个mobx存储,它存储来自服务器的所有数据 //stores.js class User { @observable userInfo = null; @observable webSocketConnected = false; } class Trend { @observable latest_trends = null; } 我有一个组件可以通过WebSocket键入用户输入并将其发送到服务器 @inject('UserStore') @observer
class User {
@observable userInfo = null;
@observable webSocketConnected = false;
}
class Trend {
@observable latest_trends = null;
}
我有一个组件可以通过WebSocket键入用户输入并将其发送到服务器
@inject('UserStore') @observer
export default class Editor extends React.Component {
componentDidMount() {
socket = new WebSocket(newURL);
}
sendText = () => {
// socket.send(...) and update to the store
}
render() {
return (
<View style={styles.container}>
...
<TextInput
value={this.state.text}
...
style={styles.text}/>
</View>
)
}
}
@inject('TrendStore') @observer
export default class Editor extends React.Component {
updateComment = () => {
// socket.send(...)
}
render() {
return (
<TouchableOpacity onPress={this.updateComment}>
<Icon/>
</TouchableOpacity>
)
}
}
@inject('UserStore')@observer
导出默认类编辑器扩展React.Component{
componentDidMount(){
套接字=新的WebSocket(newURL);
}
sendText=()=>{
//socket.send(…)并更新到存储
}
render(){
返回(
...
)
}
}
我有另一个组件可以投票给用户的评论,我想通过WebSocket更新到服务器上
@inject('UserStore') @observer
export default class Editor extends React.Component {
componentDidMount() {
socket = new WebSocket(newURL);
}
sendText = () => {
// socket.send(...) and update to the store
}
render() {
return (
<View style={styles.container}>
...
<TextInput
value={this.state.text}
...
style={styles.text}/>
</View>
)
}
}
@inject('TrendStore') @observer
export default class Editor extends React.Component {
updateComment = () => {
// socket.send(...)
}
render() {
return (
<TouchableOpacity onPress={this.updateComment}>
<Icon/>
</TouchableOpacity>
)
}
}
@inject('TrendStore')@observer
导出默认类编辑器扩展React.Component{
updateComment=()=>{
//socket.send(…)
}
render(){
返回(
)
}
}
如何创建一个WebSocket连接,以便将其用于我的所有存储和组件?您将创建一个WebSocket服务类,该类将传递给需要访问WebSocket的每个存储的构造函数。在程序的主文件中,初始化所有存储并将它们提供给组件
const webSocketService = new WebSocketService();
const userstore = new UserStore(websocketService);
const trendStore = new TrendStore(websocketservice);
const stores = { userStore, trendStore };
...
<Provider {...stores} >
...
</Provider>
const webSocketService=new webSocketService();
const userstore=新的userstore(websocketService);
const trendStore=新趋势商店(websocketservice);
const stores={userStore,trendStore};
...
...
WebSocketService可以有如下方法
- 发送(消息)
- registerEventListener(事件、侦听器)
const webSocketService = new WebSocketService();
const userstore = new UserStore(websocketService);
const trendStore = new TrendStore(websocketservice);
const stores = { userStore, trendStore };
...
<Provider {...stores} >
...
</Provider>
希望这能回答您的问题。您将创建一个websocket服务类,传递给每个需要访问websocket的商店的构造函数。在程序的主文件中,初始化所有存储并将它们提供给组件
const webSocketService = new WebSocketService();
const userstore = new UserStore(websocketService);
const trendStore = new TrendStore(websocketservice);
const stores = { userStore, trendStore };
...
<Provider {...stores} >
...
</Provider>
const webSocketService=new webSocketService();
const userstore=新的userstore(websocketService);
const trendStore=新趋势商店(websocketservice);
const stores={userStore,trendStore};
...
...
WebSocketService可以有如下方法
- 发送(消息)
- registerEventListener(事件、侦听器)
const webSocketService = new WebSocketService();
const userstore = new UserStore(websocketService);
const trendStore = new TrendStore(websocketservice);
const stores = { userStore, trendStore };
...
<Provider {...stores} >
...
</Provider>
希望这能回答你的问题