Я разрабатываю соединение Socket между flask и React Native для моей цели обучения, поэтому я попытался реализовать это, сославшись на это репозиторий github
мое приложение. js
import io from 'socket.io-client/dist/socket.io';
class App extends Component {
constructor(props){
super(props);
this.socket = io(`http://10.0.2.2:5000`)
this.socket.on('retrieve_active_users', () => {
this.socket.emit('activate_user', { username: "test_user" })
})
this.socket.on('user_activated', (data) => {
console.log(data)
})
}
My app.py
from flask_socketio import SocketIO, join_room, leave_room, emit
@socketio.on('connect')
def connect():
print('listening to connect')
retrieve_active_users()
def retrieve_active_users():
print("trigger")
emit('retrieve_active_users')
@socketio.on('activate_user')
def on_active_user(data):
user = data.get('username')
emit('user_activated', {'user': user}, broadcast=True)
@socketio.on('emission')
def emission(data):
print('listen to emission')
message = data['hello']
emit('emission', message, broadcast=True)
Проблема в том, что после запуска моей реакции- родное приложение
на стороне сервера
оно выполняет только строки print('listening to connect')
и print("trigger")
бесконечно
на стороне клиента
эти строки не выполняются
this.socket.on('user_activated', (data) => {
console.log(data)
})
и в консоли это показывает
listening to connect // print statements that i have added
trigger // print statements that i have added
127.0.0.1 - - [2020-02-02 12:16:38] "GET /socket.io/?EIO=3&transport=polling&t=N04fglI HTTP/1.1" 200 349 0.029920
127.0.0.1 - - [2020-02-02 12:16:38] "POST /socket.io/?EIO=3&transport=polling&t=N04fg_h HTTP/1.1" 400 162 0.000997
Поэтому я использую отладчик реагировать на родную и добавить console.log(this.socket)
в боковой конструктор показывает json объект и внутри него упоминается
connected: false
disconnected: true
как я могу решить эту проблему
спасибо