使用FlasksocketI的即时消息

2024-09-27 07:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Flask+Flask-soketIO实现一个即时消息服务器。 手机客户端(Ionic 2正面)

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

我还不熟悉即时消息体系结构。关于这个问题,我有几个问题:

  • 首先,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>

在服务器端:

^{pr2}$
  • 它是可扩展的吗?它是否支持高流量?在

Tags: 用户log客户端flaskmessageonconnectscript
1条回答
网友
1楼 · 发布于 2024-09-27 07:20:03

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

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

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

Is it scalable, and does it support heavy traffic ?

有许多因素会影响您的服务器可以处理多少流量。FlaskeSocketio服务器是可伸缩的,从某种意义上说,如果单个进程无法处理通信量,则可以添加更多进程,基本上给了您很大的增长空间。在

相关问题 更多 >

    热门问题