我是新手本地反应并尝试在我的应用程序中实现socket.io。我想我正在做的一切正确,但它仍然无法正常工作。
这是我的代码片段:
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 (
{this.state.name}
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
});
我创建了一个文件夹'server',其中包含以下代码:
服务器/ 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地址。那也行不通。
请帮忙!