Javascript flask上的聊天应用程序(一对一实现)
我正在尝试构建一个flask应用程序,用户可以在其中分组聊天,也可以互相聊天。为了实现这一点,我使用了flaskSocketio。我可以广播我的信息,但如何在不同的用户之间进行一对一的聊天 我已向我注册了用户数据库Javascript flask上的聊天应用程序(一对一实现),javascript,python,flask-socketio,Javascript,Python,Flask Socketio,我正在尝试构建一个flask应用程序,用户可以在其中分组聊天,也可以互相聊天。为了实现这一点,我使用了flaskSocketio。我可以广播我的信息,但如何在不同的用户之间进行一对一的聊天 我已向我注册了用户数据库 @app.route("/chat/") def chatting(): return render_template('chatHome.html') @socketio.on('message') def handleMessage(msg): send(msg, bro
@app.route("/chat/")
def chatting():
return render_template('chatHome.html')
@socketio.on('message')
def handleMessage(msg):
send(msg, broadcast=True, include_self=False)
if __name__ == '__main__':
socketio.run(app, host='0.0.0.0', port=(int)(os.environ.get('PORT', 7001)),
debug=True)
<script type="text/javascript">
$(document).ready(function() {
var socket = io.connect();
socket.on('message', function(msg) {
$("#messages").append('<p style="padding: 10px; background-color: hotpink;
overflow: auto;">'+msg+'</p>');
console.log('Received message');
});
$('#sendbutton').on('click', function() {
socket.send($('#myMessage').val());
$("#rightsend").append('<p style="padding: 10px; background-color:
#2aabd2; overflow: auto;">'+($('#myMessage').val())+'</p>');
$('#myMessage').val('');
});
$("#myMessage").keyup(function(event){
if(event.keyCode == 13){
$("#sendbutton").click();
}
});
});
</script>
每个用户在连接时都会被分配一个会话ID或sid。您可以在该客户端的任何事件处理程序中访问作为request.sid分配给该客户端的sid。人们通常做的是将给定给客户端的sid与connect事件处理程序中的实际用户相关联
找到当前与用户关联的sid后,服务器可以通过向emit调用添加room=sid参数向该用户发送消息。下面是一个使用Flask和Flask SocketIO创建简单聊天服务的示例项目。还有一篇博客文章解释了它的工作原理,