2017-10-06 113 views
0

我正在尝试构建一个烧瓶应用程序,用户可以在组中以及彼此之间聊天。为了实现这个我使用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> 
+0

这是一个使用Flask和Flask-SocketIO创建简单聊天服务的示例项目。 https://github.com/miguelgrinberg/Flask-SocketIO-Chat还有一篇博客文章解释了它是如何工作的,https://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent – blakev

回答

0

每个用户被分配会话ID或sid连接时。您可以在该客户端的任何事件处理程序中访问分配给客户端的sid作为request.sid。人们通常会将给客户端的sid与connect事件处理程序中的实际用户相关联。

一旦您找到sid当前与用户关联的方法,服务器可以通过向emit()调用添加room=sid参数来向该用户发送消息。