Попытка заставить socket.io работать с RN. Я подтвердил, что соединение установлено успешно, и сервер получит триггер события после подключения клиента, но это все.
Как вы можете видеть на моем сервере, у меня есть несколько настраиваемых событий. Я пытаюсь сгенерировать эти события из кода React Native, но ничего не срабатывает, и я не уверен, почему.
Я пробовал использовать функцию emit в коде RN в другой функции, но на моем сервере нет журналов. Какова причина этого?
I've simplified the RN code to elucidate the parts that matter most.
const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
const path = require('path');
const PORT_NUM = 3000;
io.on('connect', (socket) => {
console.info('someone joined!', socket.id);
});
io.on('sendKeys', () => {
console.info('keys callde!');
});
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, '/index.html'));
});
server.listen(PORT_NUM, () => {
console.info(`Web Socket Encryption Server Running on *:${PORT_NUM}...`);
});
import React, { Component } from 'react';
import { View, AsyncStorage } from 'react-native';
import io from 'socket.io-client/dist/socket.io';
class ControlPanel extends Component {
constructor() {
super();
this.state = {
};
this.socket = io.connect('http://192.168.0.32:3000', {
reconnectionDelay: 1000,
reconnection: true,
reconnectionAttempts: 10,
transports: ['websocket'],
agent: false,
upgrade: false,
rejectUnauthorized: false
});
this.socket.on('connect', () => {
console.info('Mobile Client Socket Connected.');
});
this.socket.on('connect_error', (err) => {
console.error(err);
});
}
componentDidMount() {
this.generateKeys();
}
async generateKeys() {
this.socket.emit('sendKeys');
}
toggleLoader() {
this.setState({
visible: !this.state.visible
});
}
toggleKeysGenerated() {
this.setState({
keysGenerated: true
});
}
render() {
}
}
export default ControlPanel;



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


эй, чувак, у меня точно такая же проблема, ты решил это?