Я очень старался понять это, но пока не повезло.Поэтому я отправляю некоторые данные с сервера на клиент с использованием сокета в цикле, однако клиент не может получить все данные и без причины закрывает сокет в середине передачи данных.
Как вы можете видеть на рисунке ниже, клиент успешно получает данные до 11-й итерации цикла (см. Код сервера ниже), однако после того, как этот сокет закрыт, причина транспортной ошибки.Что я мог не так сделать здесь?
Журналы на стороне клиента
![enter image description here](https://i.stack.imgur.com/lBrLf.png)
Журналы на стороне сервера
![enter image description here](https://i.stack.imgur.com/SKBo6.png)
(Python) код на стороне сервера
from flask import Flask, render_template, request, flash, redirect, jsonify, make_response
from flask_socketio import SocketIO, emit, disconnect
import time
from gevent import monkey
monkey.patch_all()
app = Flask(__name__)
socketio = SocketIO(app, engineio_logger=True)
@socketio.on('run_tgt')
def run_tg(tg_args):
for x in range(20):
time.sleep(2)
emit('tg_output',x)
if __name__ == "__main__":
socketio.run(app, host='0.0.0.0', debug=True)
(Javascript) код на стороне клиента
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
var socket = io.connect('http://' + document.domain + ':' + location.port );
function run_tg() {
socket.emit('run_tgt', { 'data': 'data'});
socket.on('tg_output', function(tg_output) {
console.log(tg_output);
$("#output_div").append(tg_output);
});
}