0

在flask socket-io上,如果有2个用户连接并且user1向user2发送消息,我如何拦截发送给user2的有效负载(在user2的应用程序上下文中,以便修改它)?我不想修改 user1 发送的有效负载(这很简单)。

从逻辑上讲,我想应该有一种方法可以在有效载荷在 ws 上传输之前拦截 user2 上下文中的事件。

谢谢!

4

2 回答 2

1

custom_emit_internal 的猴子补丁就成功了。希望它不会在下次更新时中断!

于 2016-02-03T14:53:59.950 回答
0

我认为您要求的是客户端功能。在服务器中,发送消息时唯一存在的上下文是发送者的上下文。交换是这样的:

client                          | server
---------------------------------------------------------------------------
user1 sends event to server     |
payload includes msg for user2  |
                                |
                                | server decodes the msg payload in
                                | user1's context and sends msg to user2
                                |
user2 receives msg from server  |

如您所见,在服务器中,user2 不是此事务的一部分,只有 user1 很重要。user2 的服务器端上下文甚至可能不在同一个服务器进程中,因为 Flask-SocketIO 可以驱动负载均衡器后面的服务器群。此外,事件的接收者可能不是单个用户,它可能是房间中的一组用户,甚至是所有连接的用户。

我不确定我是否理解您提出要求的目的,但如果您想详细说明,我或许可以提供建议。

于 2016-01-26T06:59:45.993 回答