Я стараюсь всегда иметь обновленную таблицу из моей базы данных на моей веб-странице (в реальном времени). Для этого я использую Flask и SocketIO. Но я получаю следующую ошибку:
at=error code=H12 desc="Request timeout" method=GET path="/socket.io/?EIO=3&transport=polling&t=NBIyASy&sid=bc2f86d8b04c4304aaf2a76211b3b6fa" host=pruebas-intranet.herokuapp.com request_id=2f725719-befa-4b1e-ba7b-5c025ad34a87 fwd="190.117.185.95" dyno=web.1 connect=1ms service=30001ms status=503 bytes=0 protocol=https
Здесь вы можете увидеть код, который я использую в flask:
from flask_socketio import SocketIO, emit, send
if(os.environ.get('DATABASE_URL') is None):
raise Exception("Esta Faltando la variable: DATABASE_URI")
app = Flask(__name__)
app.secret_key = “…”
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL')
db = SQLAlchemy(app)
socketio = SocketIO(app)
from models import User
login_manager = LoginManager()
login_manager.login_view = 'login_post'
login_manager.init_app(app)
login_manager.login_message = u"Por favor ingrese sus credenciales."
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
@socketio.on('solicitudes_id')
async def broad_consolidado():
consolidado_data = Consolidado.query.all()
await socketio.emit('consolidado', consolidado_data, namespace='/consolidado')
@app.route('/consolidado')
@login_required
def show_consolidado():
return render_template("consolidado.html")
if __name__ == "__main__":
socketio.run(app, debug=True)
А на моей стороне HTML я использовал как часть моего кода JS, чтобы показать таблицу:
<div style="overflow: auto">
<table id="dtHorizontalExample" class="table table-striped table-bordered table-sm" cellspacing="0" width="100%">
<thead>
<tr>
<th>solicitudes_id</th>
<th>id_user</th>
<th>tipouso</th>
<th>tipoauto</th>
<th>credito</th>
<th>entidadcrediticia</th>
<th>id_auto</th>
<th>fecha</th>
<th>canalinput</th>
<th>ciudadcompra</th>
<th>hora</th>
<th>nombre</th>
<th>appellidos</th>
<th>numdocumento</th>
<th>numtelefono</th>
<th>correo</th>
<th>tipolicencia</th>
<th>tiempolicencia</th>
<th>trabajoaplicativo</th>
<th>tipodocumento</th>
</tr>
</thead>
<tbody>
<script type="text/javascript">
var socket = io.connect('https://' + document.domain + ':' + location.port);
socket.on( 'consolidado', function( consolidado ) {
for (var i = 0; i < consolidado.length; i++) {
console.log( consolidado[i].solicitudes_id );
$( 'tbody' ).append('<tr> <td>'+
consolidado[i].solicitudes_id+ '</td> <td>'+
consolidado[i].id_user+'</td> <td>' +
consolidado[i].tipouso+ '</td> <td>'+
consolidado[i].tipoauto+'</td> <td>'+
consolidado[i].credito+ '</td> <td>'+
consolidado[i].entidadcrediticia+'</td> <td>'+
consolidado[i].id_auto+'</td> <td>'+
consolidado[i].fecha+'</td> <td>'+
consolidado[i].canalinput+'</td> <td>'+
consolidado[i].ciudadcompra+'</td> <td>'+
consolidado[i].hora+'</td> <td>'+
consolidado[i].nombre+'</td> <td>'+
consolidado[i].appellidos+'</td> <td>'+
consolidado[i].numdocumento+'</td> <td>'+
consolidado[i].numtelefono+'</td> <td>'+
consolidado[i].correo+'</td> <td>'+
consolidado[i].tipolicencia+'</td> <td>'+
consolidado[i].tiempolicencia+'</td> <td>'+
consolidado[i].trabajoaplicativo+'</td> <td>'+
consolidado[i].tipodocumento+'</td> </tr>')
}
})
</script>
</tbody>
</table>
</div>
Вот мои ошибки консоли:
введите описание изображения здесь
Спасибо,
Джонатан Прието