我期待使用 Websocket 为我的 Web 应用程序开发一个实时 API。为此,我使用 RabbitMQ 作为代理,我的后端基于 python (gevent + websocket),并将 Pika/Puka 作为 rabbitmq 客户端。
我在这里面临的问题是,我们如何使用 websocket 与 rabbitMQ 连接。在初始的 websocket 连接建立后,socket 对象等待来自客户端的新消息,而对于 rabbitMQ,我们需要为其设置一个消费者,因此它会在收到消息时进行处理。我们可以这样处理,
- 客户端通过全双工 websocket 与服务器建立连接。
- 在初始 websocket 握手之后,所有客户端都应该充当 RabbitMQ 的消费者,因此当客户端收到一些消息时,它们都会得到更新。
- 当新消息到达 websocket 时,该客户端会将其发送到 RabbitMQ,因此此时该客户端充当发布者。
问题是 Websocket 等待新消息,而 RabbitMQ 消费者在其通道上等待新消息,我无法将这两种情况联系起来。
我不确定这是否是错误的方法...
我找不到实现这种情况的方法。如果我走错了路或者有其他方法吗?请帮我解决这个问题。
谢谢,
哈里达斯·N。