0
연습을 위해 Flask 서버에서 HTML 페이지의 콘솔에 "Hello"를 계속 인쇄하려고합니다. 나는 현재 진행하는 방법을 잃어 버렸습니다.Flask 서버 (Python)에서 HTML 클라이언트로 메시지를 어떻게 보내나요?
현재 내 서버 코드이 같이 보입니다이
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@socketio.on('message')
def handle_message(message):
print('Message: ' + message)
send(message)
@socketio.on('json')
def handle_json(json):
send(json, json=True)
@socketio.on('my event')
def handle_my_custom_event(json):
emit('my response', json, broadcast=True)
def hello():
emit('message', {'hello':"Hello"})
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
socketio.run(app)
while True:
hello()
내 클라이언트 코드이 보이지만 :
<head>
<script type="text/javascript" charset="utf-8">
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function() {
socket.emit('connected');
});
socket.on('message', function(data) {
console.log(data);
});
</script>
</head>
하지만 내 콘솔 로그에서 아무것도받지 못했습니다 페이지. Flask 서버에서 콘솔로 보낸 메시지를 인쇄하려면 어떻게해야합니까? 내가 도대체 뭘 잘못하고있는 겁니까?
"안녕하세요"문자열 대신 JSON이 인쇄되어야합니다. 괜찮습니다. 난 그냥 서버에서 웹 콘솔에 인쇄 할 무언가를 원한다.
신난다 !! 어떻게하면 메시지를 주기적으로 보내도록 할 수 있습니까 (매 5 초마다)? – Jon
보통 어떤 이벤트가 발생하면 서버는 연결된 클라이언트에게 메시지를 보냅니다. 서버가 계속해서 동일한 메시지를 보내는 것은 실제로 의미가 없습니다. 그러나 정말로이 길을 내려가려면 5 초마다 socketio 메시지를내는 백그라운드 스레드를 시작할 수 있습니다. –
도움 주셔서 감사합니다. 그 예도 제공해 주시겠습니까? (예를 온라인에서 찾았으며 시도해 보았습니다.) – Jon