Итак, я искал повсюду, но не смог найти ответ.В настоящее время я занимаюсь разработкой приложения с использованием typcript (v2.8.3) и response.js (v16.4.0), которое подключается к серверу флеш-памяти с помощью клиента socket.io (v2.1.0).После каждого запуска я получаю данные, которые похожи на данные, которые фактически были отправлены с сервера, но реплицированы несколько раз.Я создал обработчик для конкретного сообщения, которое выглядит следующим образом:
this.props.socket.on("some_message", this.handleSomeMessage);
private handleSomeMessage = (message: any) => {
console.log(message);
this.setState({data: message.diff});
};
Я зарегистрировал запрос, который отправляется с сервера на стороне сервера:
if self.key_to_event_dict[key] == "some_message":
with open("sent.txt", "a") as f:
json.dump(diff_obj, f)
self.socketio.emit(
self.key_to_event_dict[key],
diff_obj
)
Вот разница в журналесо стороны сервера:
[{
"diff": {
"main": {
"values": [[0],[11.66],[9.82],[10.707500000000001], [0.8743962202571556]],
"labels": ["gen", "max", "min", "avg", "std"]
},
"fp": {
"values": [[], [], [], [], []],
"labels": ["gen", "max", "min", "avg", "std"]
}
}
},{
"diff": {
"main": {
"values": [[], [], [], [], []],
"labels": ["gen", "max", "min", "avg", "std"]
},
"fp": {
"values": [[], [1.539999999999999], [0.570000000000000],
[0.832500000000000], [0.40880160224734857]],
"labels": ["gen", "max", "min", "avg", "std"]
}
}
},
{
"diff": {
"main": {
"values": [[1], [15.32], [8.92], [10.8175], [2.61861007979424]],
"labels": ["gen", "max", "min", "avg", "std"]
},
"fp": {
"values": [[], [], [], [], []
],
"labels": ["gen", "max", "min", "avg", "std"]
}
}
},
{
"diff": {
"main": {
"values": [[2], [15.32], [9.23], [11.037500000000001],
[2.4834288292600615]],
"labels": ["gen", "max", "min", "avg", "std"]
},
"fp": {
"values": [[1, 2], [1.5399999999999991, 0.6100000000000012],
[0.5700000000000003, 0.5700000000000003], [0.8325000000000005,
0.600000000000001], [0.40880160224734857, 0.017320508075689172]],
"labels": ["gen", "max", "min", "avg", "std"]
}
}
},
{
"diff": {
"main": {
"values": [[3], [16.75], [9.23], [14.155000000000001],
[2.9027616161166248]],
"labels": ["gen", "max", "min", "avg", "std" ]
},
"fp": {
"values": [[], [], [], [], []],
"labels": ["gen", "max", "min", "avg", "std" ]
}
}
},
{
"diff": {
"main": {
"values": [[], [], [], [], [],[]],
"labels": ["gen", "max", "min", "avg", "std"]
},
"fp": {
"values": [[3], [0.6100000000000012], [0.5700000000000003], [0.5900000000000007], [0.020000000000000462]
],
"labels": ["gen", "max", "min", "avg", "std"]
}
}
}
]
Как видите, в каждом сообщении возвращается не более 2 значений.Однако, когда это сообщение читается внутри клиента:
Socket.io log
Мой обработчик регистрирует сообщение, которое содержит почти 30 значений в каждом массиве, и онивыглядят как умножение значений, полученных ранее.Здесь вы можете увидеть картинку:
зарегистрированный объект
Как вы видите, основной раздел содержит те же значения, что и ранее, но тиражируется 20-30 раз.Может ли быть какая-то проблема с сообщениями, не подтвержденными после получения ответа?