Сокет создает один экземпляр.Как создать это приложение из нескольких клиентов? - PullRequest
0 голосов
/ 21 сентября 2019

Я использую Flask сервер.Я собираю лицо с внешнего интерфейса и отправляю его на сервер фляги, и сервер обнаруживает лицо и возвращает его, если оно есть или нет. Но проблема в том, что между клиентом и сервером существует только одно соединение.Подскажите, пожалуйста, как создать несколько клиентов для сокета?За исключением (комнаты и пространства имен) Спасибо!

Вот код

FlaskServer.py

from flask import Flask, render_template, redirect, url_for
from flask_socketio import SocketIO
import face_reg

app = Flask(__name__)
app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#'
socketio = SocketIO(app,cors_allowed_origins='*')


@app.route('/')
def sessions():
    return render_template('flask_index.html')


def messageReceived(methods=['GET', 'POST']):
    print('message was received!!!')

global result

@app.route('/success')
def success():
    return render_template('success.html')

@app.route('/failure')
def failure():
    return render_template('failure.html')

@socketio.on('my event')
def handle_my_custom_event(json, methods=['GET', 'POST']):
    result = 1
    socketio.emit('my response', result, callback=messageReceived)


if __name__ == '__main__':
    socketio.run(app,host='127.0.0.1',port=8083)

client.js

var socket = io.connect('https://' + document.domain + ':' + location.port);

 socket.on( 'my response', function( msg ) {

            if(msg == 0){
                window.location.href = "/failure";
                        }
            else if(msg == 1){
                window.location.href = "/success";  
            }
 })

// Sending message to server
    function sendMessage(img,name1){
    console.log("Sending message: ",img)
        socket.emit( 'my event', {
                img_data : img,
                    name : name1
        } )
        //socket.emit(name);
   }

1 Ответ

0 голосов
/ 22 сентября 2019

Ошибка, которую я делал, была очень маленькой, я возвращал ответ, используя socket.emit, который отправлял ответ всем клиентам, поэтому я заменил его на emit, который отправляет ответ только конкретному клиенту.

...