Spring boot Comed应用程序是否需要强制使用Websocket协议
我必须向用户发送帐户更新消息,以便更新可以像实时更新一样直接显示在浏览器中 我们现有的应用程序架构拥有Zuul 1.x.x代理、Spring boot RESTFul micro服务(只是一个直通服务)和作为后端的第三方应用程序。SpringBootRESTful服务使用OAuth作为安全机制来验证接收到的请求 除第三方外,所有这些均在AWS ELB和EC2中建立 因此,我的问题是,CometD集成/应用程序是否可以在没有WebSocket的情况下实现上述功能 当我阅读他们的文档时,他们总是说,它可以通过HTTP或Websocket工作,但我无法断定是否可以通过CometD集成仅使用HTTP来推送消息 我的困惑在于,如果我将Comed集成到现有的Spring boot microservice应用程序中 CometD能否仅提供HTTP推送机制并与服务器建立连接?或者它需要websocket ws://并且需要在Zuul代理和web服务器中连续启用websocket来建立 是否从浏览器/UI与服务器建立连接? 它是否将现有spring boot restful微服务的完整性质更改为web应用程序Spring boot Comed应用程序是否需要强制使用Websocket协议,spring-boot,tomcat,websocket,netflix-zuul,cometd,Spring Boot,Tomcat,Websocket,Netflix Zuul,Cometd,我必须向用户发送帐户更新消息,以便更新可以像实时更新一样直接显示在浏览器中 我们现有的应用程序架构拥有Zuul 1.x.x代理、Spring boot RESTFul micro服务(只是一个直通服务)和作为后端的第三方应用程序。SpringBootRESTful服务使用OAuth作为安全机制来验证接收到的请求 除第三方外,所有这些均在AWS ELB和EC2中建立 因此,我的问题是,CometD集成/应用程序是否可以在没有WebSocket的情况下实现上述功能 当我阅读他们的文档时,他们总是说,
请在这方面指导我,以便我可以继续。CometD在没有WebSocket的情况下工作得非常好,因此您可以使用HTTP将消息从CometD服务器推送到您的浏览器客户端 从: CometD为您提供了实现这些消息传递模式的API:发布/订阅、通过服务器的点对点以及远程过程调用。这是通过使用独立于传输的协议(Bayeux协议)实现的,Bayeux协议可以通过HTTP、WebSocket或其他传输协议进行传输,这样应用程序就不会绑定到特定的传输技术 您可以在服务器端禁用WebSocket传输,请参阅中的allowedTransports参数: ... 降临 org.cometd.server.CometDServlet 允许运输 长轮询方式 ... ...
有关进一步的自定义,您可以在其中指定要使用的传输实现类,另请参见。非常感谢您的回复。然而,这可以通过嵌入tomcat而不是jetty的SpringBoot应用程序实现。另外,由于您已确认它不需要websocket,因此我们不需要在服务器上打开/启用TCP。我不理解您的评论。CometD独立于Servlet容器,因此可以与Tomcat和Jetty一起使用。CometD推荐Jetty,因为CometD+Jetty的组合经过了良好的测试和部署,等等。您可以将Spring Boot配置为使用Jetty而不是Tomcat。服务器上必须有TCP,因为HTTP基于TCP。