Это происходит из-за того, что ваш дизайн разъема немного неисправен. Значения name
и text
возвращаются из отдельных передач socket
, пока вы ожидаете, что они будут вместе. Я вижу, что ваши значения name
& text
доступны вместе в html, поэтому вы можете использовать один и тот же emit socket для отправки как name
, так и text
на ваш сервер, чтобы они могли также передавать их вместе давая вам желаемый результат.
Вы можете сделать следующие модификации:
html код:
// Remove these 2
// socket.emit('submit value', {'text':text});
// socket.emit('submit name', {'name':name});
// and add this line
socket.emit('submit', {'text':text, 'name': name});
python код:
# Remove following two methods chatting & name
'''
@socketio.on("submit value")
def chatting(data):
text=data["text"]
emit("chatting", {"text":text}, broadcast=True)
@socketio.on("submit name")
def name(data):
name=data["name"]
emit("chatting", {"name":name}, broadcast=True)
'''
# And add
@socketio.on("submit")
def name(data):
name=data["name"]
text=data["text"]
emit("chatting", {"name":name, "text": text}, broadcast=True)