gpt4 book ai didi

python - 使用 Flask-socketIO 进行即时消息传递

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:33 24 4
gpt4 key购买 nike

我想使用 Flask + Flask-soketIO 实现一个即时通讯服务器。手机客户端(Ionic 2 中的前端)

我已经使用 socketIO 尝试过不同的聊天室示例,但我想知道如何管理两个两个聊天的多个用户。

我还不熟悉即时消息架构。我对这个主题有几个问题:

  • 首先,Flask是一个很好的实现手机应用即时通讯的框架吗?
    我确实从 Flask 开始,因为它看起来很强大,而且不像 django 那样笨重。
  • 在带有 sokcetIO 的即时通讯应用中,如何连接两个用户?
    我尝试了这段代码,但它适用于同一聊天室中的多个用户:

在客户端:

    <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)
  • 它是否可扩展,是否支持大流量?

最佳答案

In instant messaging app with sokcetIO, how can I connect users two by two?

如果总是两个用户聊天,那么他们可以互相发送直接消息。当客户端连接时,它会被分配一个 session ID,或 sid。如果您跟踪这些 ID 并将它们映射到您的用户,您就可以向特定用户发送消息。例如,如果您将用户的 sid 值存储在用户数据库中,则可以按如下方式向该用户发送直接消息:

emit('private_message', {'msg': 'hello!'}, room=user.sid)

Is it scalable, and does it support heavy traffic ?

有很多因素会影响您的服务器可以处理的流量。 Flask-SocketIO 服务器是可扩展的,从某种意义上说,如果单个进程无法处理流量,您可以添加更多进程,基本上给您很大的成长空间。

关于python - 使用 Flask-socketIO 进行即时消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44517248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com