【发布时间】:2021-01-28 14:07:13
【问题描述】:
我正在创建一个通知服务,并且需要将一个用户存储在一个房间中,以便向他发送通知到所有打开的选项卡。
我怎样才能把每个房间的用户?我有授权,用户有用户名,如何为用户名创建房间 mb,然后使用 socketio.send(broadcast=True) 将用户通知发送到所有用户选项卡。
这里有一些 Python 代码:
@login_required
@app.route('/test', methods=['GET', 'POST'])
def test():
return render_template('test.html',username=current_user.username)
@socketio.on('message')
def message(data):
username = current_user.username
send(data, broadcast=True)
@socketio.on('join')
def join():
"""User joins a room"""
username = current_user.username
room_name = current_user.username + "room"
print('ROOM NAME',room_name)
room = room_name
join_room(room)
send(username + ' has entered the room.', room=room)
这里是 JavaScript 代码:
document.addEventListener('DOMContentLoaded', () => {
socket.on('connect', () => {
socket.send("Iam connected");
socket.emit('join', {});
});
socket.on('message',data => {
const p = document.createElement('p');
const br = document.createElement('br');
p.innerHTML = data;
document.querySelector('#display-message-section').append(p);
});
document.querySelector('#send_message').onclick = () => {
socket.send(document.querySelector('#user_message').value);
}
})
【问题讨论】:
标签: python flask socket.io flask-sqlalchemy