-1
在我的燒瓶應用中使用socketio,我想顯示發件人和消息的名稱,但這裏只顯示消息,發件人的名字只在瀏覽器中顯示「[object object] hello」 。Python燒瓶廣播消息
**# server.py
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config[ 'SECRET_KEY' ] = 'jsbcfsbfjefebw237u3gdbdc'
socketio = SocketIO(app)
@app.route('/')
def hello():
return render_template('./index.html')
def messageRecived():
print('message was received!!!')
@socketio.on('my event')
def handle_my_custom_event(json):
print('recived my event: ' + str(json))
socketio.emit('my response', json, callback=messageRecived)
if __name__ == '__main__':
socketio.run(app, debug = True)
的index.html
**
<form action="" method="POST">
<b>Type your message below <span class="glyphicon glyphicon-arrow-down"></span></b>
<div class="clearfix" style="margin-top: 5px;"></div>
<div id="username">My Name</div>
<div style="padding-top: 5px;"></div>
<input type="text" class="message form-control" placeholder="Messages">
<div style="padding-top: 5px;"></div>
<button type="submit" class="btn btn-success btn-block"><span class="glyphicon glyphicon-send"></span> Send</button>
</form>
</div>
</div>
**
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.min.js"></script>
<script>
var socket = io.connect('http://' + document.domain + ':' + location.port)
// broadcast a message
socket.on('connect', function() {
socket.emit('my event', {
data: 'User Connected'
})
var form = $('form').on('submit', function(e) {
e.preventDefault()
let username = $('#username').val()
let user_input = $('input.message').val()
socket.emit('my event', {
username : $("#username"),
message : user_input
})
// empty the input field
$('input.message').val('').focus()
})
})
socket.on('my response', function(msg) {
console.log(msg)
if(typeof msg.username !== 'undefined') {
$('h1').remove()
$('div.message_holder').append('<div class="msg_bbl"><b style="color: #000">'+msg.username+'</b> '+msg.message+'</div>')
}
})
</script>**
請停止恢復編輯,您的原始格式非常糟糕。將代碼塊*格式化爲代碼塊*,而不是引號。 – jonrsharpe