Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript flask上的聊天应用程序(一对一实现)_Javascript_Python_Flask Socketio - Fatal编程技术网

Javascript flask上的聊天应用程序(一对一实现)

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

我正在尝试构建一个flask应用程序,用户可以在其中分组聊天,也可以互相聊天。为了实现这一点,我使用了flaskSocketio。我可以广播我的信息,但如何在不同的用户之间进行一对一的聊天 我已向我注册了用户数据库

@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创建简单聊天服务的示例项目。还有一篇博客文章解释了它的工作原理,