Python Flask Socketio连接错误问题

时间:2020-02-28 22:30:51

标签: python flask socket.io flask-socketio

我们目前在套接字连接错误方面遇到一些困难。我们的微服务在Flask中运行,带有Flask-SocketIO软件包。

当前有三个API-全部使用Python: -1-带有服务器的Socket Flask API -2-具有端点的Flask API,用于设置socketio客户端 -3-要求上述API的聊天机器人

考虑到第二个API的狂热,可以与第一个API建立成功的连接。一切按预期进行:客户端连接并进入房间。

但是,当以另一个API(例如第三个API)间接发出python请求时,会出现以下错误:

文件“”,第3行,在raise_from中 api_kpi | socketio.exceptions.ConnectionError:服务器拒绝连接

有人知道可能发生的事情吗?我们还尝试过其他后端(例如Node),并且连接有效。

非常感谢!

  • 发出请求的函数-出现以下错误:

    def make_request_api(自己): '''Faz一个没有终结点的请求/ 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  
    

0 个答案:

没有答案