2017-10-06 2 views
0

Ich versuche, eine Flasche App zu bauen, in der Benutzer in der Gruppe sowie miteinander chatten können. Um dies zu implementieren, benutze ich flaskSocketio. Ich bin in der Lage meine Botschaft zu senden, aber wie kann ich 00.59 Chat tun .... zwischen verschiedenen Benutzern ich Datenbank von Benutzern zu mir haben registriert .......Chat App auf Kolben (eins zu eins Implementierung)

@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

Hier ist ein Beispielprojekt, das Flask und Flask-SocketIO verwendet, um einen einfachen Chat-Dienst zu erstellen. https://github.com/miguelgrinberg/Flask-SocketIO-Chat Es gibt auch einen Blogbeitrag, der erklärt, wie es funktioniert, https://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent – blakev

Antwort

0

Jeder Benutzer zugewiesen wird eine Sitzungs-ID oder sid, wenn sie verbinden. Sie können auf die sid zugreifen, die einem Client als request.sid in einem beliebigen Ereignishandler für diesen Client zugewiesen ist. Was Benutzer normalerweise tun, ist das Zuordnen eines sid zu einem Client zu dem tatsächlichen Benutzer in der Ereignisbehandlungsroutine connect.

Sobald Sie eine Möglichkeit haben, die sid derzeit mit einem Benutzer zugeordnet zu finden, kann der Server eine Nachricht nur an den Benutzer durch das Hinzufügen eines room=sid Argument der emit() Anruf.