现在我正在为分布式系统设计REST接口。它是一个客户端/服务器架构,但有两种消息交换模式:
在网上搜索我发现一个解决方案可能是在服务器和客户端中实现REST服务器:Publish/subscribe REST-HTTP Simple Protocol web services architecture?
另一种选择是实现阻塞REST,因此客户端不需要在特定端口中监听:Using blocking REST requests to implement publish/subscribe
我想知道你会考虑哪些选项来实现像这样的接口。谢谢!
答案 0 :(得分:2)
Web Sockets可以为该服务提供一个渠道,以实时更新Web客户端。还有诸如http long polling之类的其他技术,其中客户端发出“阻止”请求(如您所指),其中服务将请求保留的时间少于超时(例如50秒),并在请求时写入响应有数据。 Web客户端立即发出另一个请求。此循环创建了一个连续的通道,可以从服务器向客户端“发送”消息,但是可以从客户端(防火墙,代理等)启动消息。
有socket.io,signalR之类的库以及许多其他库,它们包装了这种逻辑,甚至从websocket退回,直到为您优雅地长时间轮询并提取细节。
我建议编写一些示例Web套接字和long polling examples只是为了理解,然后依靠上面提到的库来正确处理。