Python Flask Ошибка соединения Socketio - PullRequest
0 голосов
/ 29 февраля 2020

В настоящее время мы сталкиваемся с некоторыми трудностями, связанными с ошибкой соединения socketio. Наши микросервисы работают в Flask с пакетом Flask -SocketIO.

В настоящее время существует три API - все в Python: - 1 - Socket Flask API с сервером - 2 - Flask API с конечной точкой, которая устанавливает socketio client - 3 - Chatbot, который запрашивает вышеуказанный API

Можно установить sh успешное соединение с первым API, считая вторым API. Все работает как положено: клиент подключается и входит в комнату.

Однако, когда запрос python сделан косвенно с помощью другого API - например, третьего, появляется следующая ошибка:

Файл "", строка 3, в Raise_from api_kpi | socketio.exceptions.ConnectionError: Сервер отклонил соединение

Кто-нибудь знает, что может происходить? Мы также попробовали другие бэкэнды, такие как Node, и соединение работает.

Заранее большое спасибо!

  • Функция, которая делает запрос - после ошибки:

    def make_request_api (self): '' 'Faz a запрос без конечной точки / redirecionar para realizar o transbordo' ''

    data = splitSenderId(self.sender) 
    logger.info(data)
    
    
    headers = {
        "Content-type": "application/json"
        ,"Accept": "application/json"
    }
    
    try:
        r = requests.post(os.environ['TRANSBORDO'], data=json.dumps(data), headers=headers)
        if r.status_code is 200:
            logger.info(f'Msg {r.text}')
            return True
        else:
            logger.info(f'Erro: {r.text}')
            return False
    except requests.exceptions.ConnectionError:
        logger.info('Erro de Conexao com Transbordo')
        return False
    
  • Журналы ошибок:

    [28/02/2020 21:30:06] INFO: ./graficos/validacoes/validacaoTransbordo.py:57 - "Conectando ao Socket Bot"
    Traceback (most recent call last):
    File "/usr/local/lib/python3.6/site-packages/gevent/pywsgi.py", line 976, in handle_one_response
    self.run_application()
    File "/usr/local/lib/python3.6/site-packages/gevent/pywsgi.py", line 923, in run_application
    self.result = self.application(self.environ, self.start_response)
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2328, in __call__
    return self.wsgi_app(environ, start_response)
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2314, in wsgi_app
    response = self.handle_exception(e)
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 269, in error_router
    return original_handler(e)
    File "/usr/local/lib/python3.6/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 269, in error_router
    return original_handler(e)
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 269, in error_router
    return original_handler(e)
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1760, in handle_exception
    reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value.with_traceback(tb)
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2311, in wsgi_app
    response = self.full_dispatch_request()
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1834, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 269, in error_router
    return original_handler(e)
    File "/usr/local/lib/python3.6/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 269, in error_router
    return original_handler(e)
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 269, in error_router
    return original_handler(e)
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1737, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value.with_traceback(tb)
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1832, in full_dispatch_request
    rv = self.dispatch_request()
    File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1818, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 458, in wrapper
    resp = resource(*args, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/flask_restful_swagger_2/__init__.py", line 39, in decorator
    return f(*args, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/flask/views.py", line 88, in view
    return self.dispatch_request(*args, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/flask_restful/__init__.py", line 573, in dispatch_request
    resp = meth(*args, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/flask_restful_swagger_2/swagger.py", line 219, in inner
    return f(self, *args, **kwargs)
    File "./graficos/views/transbordoView.py", line 85, in post
    ValidaTransbordo(data['idEmpresa'], data['botId']).orquestrador()
    File "./graficos/validacoes/validacaoTransbordo.py", line 24, in orquestrador
    self.conectaSocketBot()
    File "./graficos/validacoes/validacaoTransbordo.py", line 58, in conectaSocketBot
    self.sioBot.connect(os.environ['URL_SOCKET_BOT'], namespaces=['/bot'], headers={'Authorization': 'Bearer ' + self.token})
    File "/usr/local/lib/python3.6/site-packages/socketio/client.py", line 270, in connect
    six.raise_from(exceptions.ConnectionError(exc.args[0]), None)
    File "<string>", line 3, in raise_from
    socketio.exceptions.ConnectionError: Connection refused by the server
    2020-02-28T21:30:11Z {'REMOTE_ADDR': '172.28.0.2', 'REMOTE_PORT': '55004', 'HTTP_HOST': 'api_kpi:5009', (hidden keys: 24)} failed with ConnectionError
    
  • Успешное соединение мысли API чванство:

    [28/02/2020 22:24:15] INFO: ./graficos/validacoes/validacaoTransbordo.py:74 - "Making Requisition - API Auth - Token"
    [28/02/2020 22:24:15] INFO: ./graficos/validacoes/validacaoTransbordo.py:110 - "Checking if someone from staff is online"
    [28/02/2020 22:24:15] INFO: ./graficos/validacoes/validacaoTransbordo.py:43 - "Active (Random): {'id': 2, 'usuario': 'bot', 'socketId': '2bot'}"
    [28/02/2020 22:24:15] INFO: ./graficos/validacoes/validacaoTransbordo.py:57 - "Connecting to Socket Bot"  
    [28/02/2020 22:24:15] INFO: ./graficos/validacoes/validacaoTransbordo.py:49 - "Entering Room ModalGR-0-3-58845878-5a63-11ea-a435-0242ac1a0009"
    172.28.0.1 - - [2020-02-28 22:24:15] "POST /redirecionar HTTP/1.1" 200 222 0.180242  
    
...