【发布时间】:2019-07-19 23:54:28
【问题描述】:
我正在尝试使用 React Native 构建一个实时多人游戏,基本上我想将其中一部手机作为我的服务器,另一部作为连接到服务器的客户端。 这是我的 Express 服务器:
server.js
let app = require('express')();
let port = 3000;
let server = require('http').createServer(app)
let io = require ('socket.io')(server)
module.exports = startServer = () => {
io.on("connection", () => {
console.log("someone has connected");
})
server.listen(port, () => {console.log("server is running at " + port)})
}
App.js
import React, { Fragment } from "react";
import {
SafeAreaView,
StyleSheet,
ScrollView,
View,
TextInput,
Text,
StatusBar
} from "react-native";
let startServer = require('./server')
class App extends React.Component {
componentDidMount() {
startServer();
}
render() {
return (
<View style={{justifyContent: 'center', alignContent: 'center', flex: 1}}>
<TextInput style={{borderBottomWidth: 1}}/>
</View>
);
}
}
const styles = StyleSheet.create({});
export default App;
我在componentDidMount中使用startServer来启动服务器(就像我们使用node server.js一样)。
client.js
let io = require('socket.io-client');
let port = 3000
start = () => {
socket = io(someIP + ":" + port);
}
所以有几个问题:
1-我实现这个的一般方法是否合理且合适?
2-React Native 无法做到解析模块http,在 React Native 中创建服务器的替代方法是什么?
3- 我必须在 client.js 中连接的服务器的 ip 是多少? (所有设备都必须连接到同一个互联网网络吗?)
【问题讨论】:
标签: react-native express socket.io