我们目前在套接字连接错误方面遇到一些困难。我们的微服务在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