我想使用Flask + Flask-soketIO实现即时消息服务器。
客户端在手机上(前面在Ionic 2中)
我已经尝试过使用socketIO的不同聊天室示例,但我想知道如何管理多个用户一两聊聊。
我还不熟悉即时消息体系结构。关于这个问题,我有几个问题:
在客户端:
<script type="text/javascript">
$(document).ready(function() {
var socket = io.connect("http://127.0.0.1:5000");
socket.on('connect', function() {
console.log('connected')
});
socket.on('message',function(msg){
$("#messages").append('<li>' + msg + '</li>');
});
$("#sendButton").on('click', function() {
console.log($('#myMessage').val());
socket.send({ 'author': 'Kidz55',
'message': $('#myMessage').val()});
$('#myMessage').val('');
});
});
</script>
在服务器端:
@socketio.on('message')
def handle_json(json):
print('received json: ' + str(json))
# broadcasting to everyone who 's connected
send(json,,broadcast=True)
答案 0 :(得分:1)
在使用sokcetIO的即时消息应用中,如何逐个连接用户?
如果总是两个用户聊天,那么他们可以互相发送直接消息。当客户端连接时,会为其分配会话ID或sid
。如果您跟踪这些ID并将其映射到您的用户,则可以向特定用户发送消息。例如,如果在用户数据库中存储用户的sid
值,则可以按如下方式向该用户发送直接消息:
emit('private_message', {'msg': 'hello!'}, room=user.sid)
它是否可扩展,是否支持大量流量?
有许多因素会影响服务器可以处理的流量。 Flask-SocketIO服务器是可扩展的,因为如果单个进程无法处理流量,您可以添加更多进程,基本上为您提供了大量增长空间。