Я пытаюсь разработать базовое приложение для чата с сокетами ввода-вывода, использующее сервер nodejs express, и реагировать на него.Я новичок в этих стеках, поэтому не смог определить правильное функционирование с компонентами.Я следовал соглашениям, приведенным в официальной документации по сокетам ввода / вывода, но не смог найти ничего, в частности связанного с реагирующим нативом.Я также пробовал такую же функциональность для веба, т.е. реагируйте на js и некоторые другие, как это работало, но не смог достичь результатов для реагировать на нативную.
Вот мой код из основного компонента на стороне клиента:
constructor(props) {
super(props);
this.state = {
text: '',
messages : [],
}
}
componentDidMount() {
this.socket = io('http://localhost:3333');
this.socket.on('RECEIVE_MSG', (msg) => this.addMessage(msg))
}
sendMessage = () => {
this.socket.emit('EMIT_MSG', {
text: this.state.text
});
this.setState({text: ''})
}
addMessage = (msg) => {
console.log(msg, 'any incoming msgs data');
this.setState({messages : [...this.state.messages, msg]});
console.log(this.state.messages);
}
renderMessages = () => {
return this.state.messages.map((message, index) => {
return (
<Text key={index}>
{message}
</Text>
)
})
}
render() {
return (
<View>
<TextInput placeholder="enter your msg"
onChangeText={(text)=>this.setState({text})}/>
<TouchableOpacity onPress={() => this.sendMessage}>
<Text> send msg </Text>
</TouchableOpacity>
<ScrollView>
{this.renderMessages()}
</ScrollView>
</View>
)
}
}
И вот мой код сервера для того же самого с экспрессом и импортированным сервером:
io.on('connection', function(socket) {
console.log('a user connected: ' + socket.id);
socket.on('RECEIVE_MSG', function(msg){
console.log('message: ' + msg);
io.emit('EMIT_MSG', msg);
});
});
Проблема сохраняется, что ничего не появляется в консоли.Всякий раз, когда я нажимаю кнопку отправки, текст даже не изменяется и не показывает никаких сообщений об ошибках в консоли.Пожалуйста, помогите мне исправить это, если я соблюдаю правила или нет?