【发布时间】:2018-09-05 02:40:44
【问题描述】:
我是 react-native 的新手,并试图在我的应用程序中实现 socket.io。我想我做的一切都是正确的,但仍然无法正常工作。
这是我的代码 sn-ps :
App.js
import React from 'react';
import {StyleSheet, Text, View} from 'react-native';
// window.navigator.userAgent = 'react-native';
import io from 'socket.io-client/dist/socket.io'
export default class App extends React.Component {
state = {
name: 'Hello World!'
};
constructor(props) {
super(props);
this.socket = io('http://192.168.1.24:19001'/*, {transports: ['websocket']}*/);
this.socket.on('connect', () => {
console.log('connected');
});
this.socket.on('update', () => {
console.log('yay');
this.setState({name: 'Done did it!'})
});
}
render() {
return (
<View style={styles.container}>
<Text>{this.state.name}</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
});
我创建了一个文件夹“服务器”,其中包含以下代码:
服务器/app.js
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen('19001', '192.168.1.24');
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
console.log(socket.id);
socket.on('update', () => {
console.log('update');
socket.emit('update')
});
});
我制作了一个与应用程序交互的 html 页面。
服务器/index.html
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen('19001', '192.168.1.24');
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
console.log(socket.id);
socket.on('update', () => {
console.log('update');
socket.emit('update')
});
});
我也尝试使用 localhost 而不是 IP 地址。那也没用。
请帮忙!
【问题讨论】:
-
你能把正确的代码放在这里吗?
标签: reactjs react-native