2017-10-06 100 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參數來向該用戶發送消息。