2017-10-06 7 views
0

J'essaie de construire une application flacon dans laquelle les utilisateurs peuvent discuter en groupe ainsi que les uns les autres. afin d'implémenter ceci j'utilise flaskSocketio. Je suis en mesure de diffuser mon message, mais comment puis-je faire à l'un dans le chat l'un .... entre les différents utilisateurs Je dispose d'une base d'utilisateurs enregistrés à me .......Application de chat sur flacon (implémentation un à un)

@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

Voici un exemple de projet qui utilise Flask et Flask-SocketIO pour créer un service de conversation simple. https://github.com/miguelgrinberg/Flask-SocketIO-Chat Il y a aussi un billet de blog qui explique comment cela fonctionne, https://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent – blakev

Répondre

0

Chaque utilisateur se voit assigner un ID de session ou sid lorsqu'ils se connectent. Vous pouvez accéder au sid affecté à un client en tant que request.sid dans n'importe quel gestionnaire d'événement pour ce client. Ce que les gens font généralement est d'associer le sid donné à un client à l'utilisateur réel dans le gestionnaire d'événements connect.

Une fois que vous avez un moyen de trouver le sid actuellement associé à un utilisateur, le serveur peut envoyer un message juste à cet utilisateur en ajoutant un argument room=sid à l'appel emit().