Реагируйте с родной Flask реализацией веб-сокета - PullRequest
1 голос
/ 01 февраля 2020

Я разрабатываю соединение 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

как я могу решить эту проблему

спасибо

...