我正在寻找一种方法,在不同语言编写的应用程序之间实现基本的发布/订阅,以交换具有JSON有效负载的事件。
WebSocket似乎是传输的显而易见选择,但需要在顶部添加(可以说很小的)层来实现一些管道:
- 就pubsub领域“订阅主题”,“发布消息”达成协议 - 为基础设施达成协议的消息(“心跳”,“验证”)
我原本期望找到一个明显的标准来解决这个问题,但似乎没有任何标准。
- WAMP经常被提到,但在我的(短暂)经验中,服务器/客户端库的实现并不好。 - STOMP也经常被提到,但在我的(甚至更短)经验中,它还不如WAMP。 - Phoenix Channels很好,但它们仅限于Phoenix / Elixir世界,并且不是标准的(因此消息可以在任何phoenix版本上不经通知地改变)。
那么,大家都在使用MQTT/WS(需要其他代理组件,而不是简单的服务器?)还是gRPC?
每个人都在从头开始重新实现吗?(这是其中一件看起来足够容易自己完成的事情,但我猜您最终会得到一个失败的、规范不完善且存在问题的版本...)
还是说,从服务器上提供数据流输通过WS这个想法有根本性的错误?
WebSocket似乎是传输的显而易见选择,但需要在顶部添加(可以说很小的)层来实现一些管道:
- 就pubsub领域“订阅主题”,“发布消息”达成协议 - 为基础设施达成协议的消息(“心跳”,“验证”)
我原本期望找到一个明显的标准来解决这个问题,但似乎没有任何标准。
- WAMP经常被提到,但在我的(短暂)经验中,服务器/客户端库的实现并不好。 - STOMP也经常被提到,但在我的(甚至更短)经验中,它还不如WAMP。 - Phoenix Channels很好,但它们仅限于Phoenix / Elixir世界,并且不是标准的(因此消息可以在任何phoenix版本上不经通知地改变)。
那么,大家都在使用MQTT/WS(需要其他代理组件,而不是简单的服务器?)还是gRPC?
每个人都在从头开始重新实现吗?(这是其中一件看起来足够容易自己完成的事情,但我猜您最终会得到一个失败的、规范不完善且存在问题的版本...)
还是说,从服务器上提供数据流输通过WS这个想法有根本性的错误?