如何制作Spring Websocket + Node.js客户端
如何像我在Java中一样在Node.j中创建WebSocket Stomp Client(WebSocketStompClient). WebSocketStompClient stompClient = new WebSocketStompClient(new SockJsClient(createTransportClient())); stompClient.setMessageConverter(new MappingJackson2MessageConverter()); StompSession stompSession = stompClient.connect("ws://localhost:8081/stomp", new StompSessionHandlerAdapter() { }).get(10, SECONDS); 我尝试了Node.js中的几个Websocket项目,但它们都没有工作 解决方案 我明白了! Spri
14 2023-04-26
编程技术问答社区
带有网络插座的Zuul
我们目前有一个直接的WebSocket连接,该连接转到了后端WebService 来自我们的UI应用程序.现在,当我们尝试通过Zuul(Apigateway)进行相同操作时,我们无法连接到后端服务 我们已经浏览了以下问题,这些问题无法解决我们的问题,但它为我提供了以下链接中的选择 我的另一个问题是,如果我们想与Zuul一起使用WebSocket协议,因为我知道Spring Support Websocket和Zuul是一项基于Spring的服务,我们需要在Zuul进行哪些更改,因为我知道Spring Support Support(如果我错了,则正确) ) 更新 我所知,Zuul 2将无法使用此功能. Zuul 2不会纳入弹簧云.请参阅春季云网关以获取Websockets支持.检查一下( 解决方案 Zuul 1无法支持WebSockets. Zuul 2将支持它 https://github.com/netflix/netflix/zuul/zuul/zuul/sissu
0 2023-04-21
编程技术问答社区
当在不同的领域时,SockJS不传递凭证信息(CORS)
我们使用Spring 4具有WebSocket服务器端实现.它已配置为使用Spring Security进行AUTH/AUTHZ.在客户端,我们使用sockjs,当客户端与服务器处于同一域时,可以很好地工作. 致电Websocket是这样的…… socket = new sockjs(" 跟踪器") 这最终呼吁 http://mywebsocketapp/tracker/info 决定使用的运输.所有这些都很好. 但是,当使用来自其他域的客户端时,我看到凭据被剥离了.因此,当这个客户端在另一个域上时,我看到正在调用的呼叫是: http://myinterestingdomain.com/mywebsocketapp/trackapp/tracker/info .我看不到证书正在通过.因此,我得到了401个错误(未经授权)用户.我们在服务器端具有CORS配置,还具有: 访问控制 - 允许征收" true" 有人可以帮我吗?我没有选择,我不明白为什么凭证被
14 2023-04-07
编程技术问答社区
如何排除故障并解决SockJs'的/info路径上的404,当有跨源时
我在sockjs和cors上遇到了麻烦.我用春天.我设置了如下的WebMVCCONFIGIG: @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry .addMapping("/**") .allowedOrigins("http://localhost:3000") .allowCredentials(true); ; } }; } 和WebSocketConfig如下: @Overri
18 2023-04-07
编程技术问答社区
在WebSocket握手过程中出错: 意外的响应代码: 403
我已经实现了 websockets spring boot应用程序在尝试使用Chrome扩展程序测试WS连接' smart smart websocket客户client 并具有以下错误消息./strong>'. 但是,当本地运行Spring Boot应用程序时,我没有问题. WebSocket connection to 'ws://192.168.X.XYZ:8080/test' failed: Error during WebSocket handshake: Unexpected response code: 403 我在请求标题中看到的唯一区别: 在它起作用的一个中 - 原点: http://192.168.x.xyz:8080 /p> 在它不起作用的一个中 - 起源:chrome -extension://omalebghpgejjiaoknljcfmglgbpocdp 我在 WebSocketConfig 类中所做的工作如下: @Overri
68 2023-04-07
编程技术问答社区
用Spring展示关于当前Websocket连接的指标
对于我的仪表板应用程序,我想用内部弹簧指标监视基于春季启动的应用程序.因此,我正在使用spring-boot-actuator依赖性,它正在暴露许多内部指标.有很多基于HTTP的指标和TOMCAT指标,例如当前会话,状态X的HTTP调用数量等.我找不到有关我的Websocket连接的任何信息. 是否有任何盒子指标揭示当前网站漏的工具,还是我必须创建自己的指标(例如,用Prometheus显示Grafana的数据),必须手动注册例如当我收到SessionConnectEvent或SessionConnectEvent>的计数器? 时会更新 预先感谢! 解决方案 如果您在Websocket上使用了Stomp,则Spring汇总有关内部状态的信息和来自WebSocketMessageBrokerStats设置的关键基础结构组件的计数器,默认情况下,该信息每30秒记录一次.它是作为弹簧豆创建的,可以轻松自动自动.这是您将获得的信息的一个示例: 当前没有执行器端点,但是我已经创建
0 2023-03-27
编程技术问答社区
使用Websockets来代替RESTful HTTP有什么隐患?
我目前正在从事一个项目,该项目需要客户要求一份大工作并将其发送给服务器.然后,服务器将作业划分,并用一系列URL响应客户端,以进行启用并返回数据.我是该项目的Greenhorn,目前正在使用Spring Websocket来提高效率. Websocket现在将直接联系客户端! 让WebSocket从端到头管理整个过程是一个坏主意吗?我正在使用Spring Websocket的Stomp,抛弃休息仍然存在重大问题? 解决方案 使用RESTFUL HTTP,您有一个无状态请求/响应系统客户端发送请求并返回响应. 使用WebSockets,您有一个状态(或潜在的状态)消息传递系统,可以在其中发送消息并发送消息的开销比使用RESTFUL HTTP请求/响应的开销要低. 两者是相当不同的结构,具有不同的优势. 连接的Websocket的主要优点是: 双向通信.因此,服务器可以随时通知客户端.因此,客户端可以建立Websocket,而只需聆听服务器传来的任何消息,而
4 2023-03-14
编程技术问答社区
如何在Spring WebFlux中正确地从多个Flux(WebsocketSession::receive)向Sink发射值?
在我简化的情况下,我想将Websocket客户端发送给所有其他客户端发送的消息.该应用程序是使用带有Spring的反应性网站构建的. 我的想法是使用单身 Sink,如果从客户端收到消息,请在此水槽上发射. WebsocketSession::send刚刚将此Sink发出的事件转发给连接的客户. @Component class ReactiveWebSocketHandler(private val sink: Sinks.Many, private val objectMapper : ObjectMapper) : WebSocketHandler { override fun handle(session: WebSocketSession): Mono { val input = session.receive() .
78 2023-02-24
编程技术问答社区
Websocket的单元测试返回空值
我试图用Springboot JUnit JUnit的A Websocket实现单元测试. 我正在关注让我展示我的测试课 @ExtendWith(SpringExtension.class) @SpringBootTest(classes =Main.class) @WebAppConfiguration public class WebSocketTest { static final String WEBSOCKET_URI = "http://localhost:8080/api/realtimedata"; static final String WEBSOCKET_TOPIC = "/realtimedata"; BlockingQueue blockingQueue; WebSocketStompClient stompClient; @BeforeEach public void setup() { blocking
2 2023-02-21
编程技术问答社区
为什么ServletServerContainerFactoryBean在测试时出现了问题?
我正在使用Spring Boot进行Web应用程序.此应用程序还配置为使用WebSocket和Wander(非常基本的)传入消息. 该应用程序似乎正常.问题是当我进行一些测试时. 相关部分是: //WebManagerApplication.java @Configuration @ComponentScan @EnableAutoConfiguration public class WebManagerApplication { public static void main(String[] args) { SpringApplication.run(WebManagerApplication.class, args); } } // //WebSocketConfig.java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocke
14 2023-02-21
编程技术问答社区
Spring WebSocket配置:如何同时使用WebSocketMessageBrokerConfigurationSupport和WebSocketConfiguration?
我正在使用类 配置我的Spring Websocket public class WebSocketConfig extends WebSocketMessageBrokerConfigurationSupport 现在,我遇到了建议 Spring Stomp Websocket:启用服务器端的Persessage-Deflate的任何方法? 使用 public class SampleJettyWebSocketsApplication implements WebSocketConfigurer 和覆盖 @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) 并提供 @Bean public DefaultHandshakeHandler handshakeHandler() 问题, websocketConfigurer 和
4 2023-02-02
编程技术问答社区
为什么没有一种连接和发送websocket的方法?
我是新的Websocket,并参考了以下Spring Websocket教程,并且在我的系统中工作正常.我也在使用Stomp.js和Sockjs-0.3.4.js. https://spring.io/guides/guides/guides/ggs/messaging-stomp-stomp-stomp-websocket一下/ 如果HTML和JavaScript具有下面的两种不同的方法,则有效. function connect() { var socket = new SockJS('/app/hello'); stompClient = Stomp.over(socket); stompClient.connect({}, function(frame) { setConnected(true); console.log('Connected: ' + frame);
14 2023-01-26
编程技术问答社区
刷新后保持WebSocket连接活力
我有一个实时应用程序,该应用程序使用了Java Spring Server和浏览器之间的Websocket.是否有一种方法可以在页面刷新后保持Websocket连接生存? 这是我的JavaScript代码: consumerWebSocket = new WebSocket("wss://" + window.location.host + "/myWebSocketConnection"); consumerWebSocket.onopen = function () { sendThroughWS(consumerWebSocket, "Send this message from browser to server"); }; 解决方案 不,你不能.问题在于,WebSocket所持的上下文仅限于您显示的页面.一旦您刷新页面或导航到另一个页面,上下文(以及Websocket)就会被销毁. 防止破坏的解决方案是创建某种单一页面应用程序.新内容将被加
8 2023-01-22
编程技术问答社区
使用sockjs和stomp在/info请求期间没有cookie
我正在尝试将Spring Security与Websocket一起使用.例如,我正在使用spring-websocket-chat( $connectButton.click(function () { var serverHost = $host.val(); console.log("sockjs created"); stomp = Stomp.over(new SockJS(serverHost)); console.log("stomp over"); stomp.connect({}, function () { console.log("connected"); }, function () { console.log("error"); }) console.log("pressed"); }); 解决方案
8 2023-01-22
编程技术问答社区
Webrtc远程视频流不工作
在设置综合词时,我在Firefox中的错误低于: domexception [无效的StateError:"无法在状态下设置远程报价" 代码:11 NSResult:0x8053000b 位置: test-online.js:111] 请在我的test-online.js代码下方找到 var localVideo; var remoteVideo; var peerConnection; var serverConnection; var peerConnectionConfig = {'iceServers': [{'url': 'stun:stun.services.mozilla.com'}, {'url': 'stun:stun.l.google.com:19302'}]}; pageReady(); var offerOptions = { offerToReceiveAudio: 1, offerToReceiveVi
6 2023-01-22
编程技术问答社区
是否可以使用Spring WebSocket在WebSocket上通过STOMP发送二进制数据?
我能够在春季文档.但是,高率很高的性能很差,因此我希望介绍二进制消息的使用. Spring-Websockets 4.0 JavaScript客户端在Chrome 35 中运行 发送 我使用带有必要的经纪继电器的SimpMessAgeTemplate发送消息 - 请参见@Controller public class DemoBinaryController { @Autowired private SimpMessagingtemplate template @Scheduled(fixedDelay = 5000) public void demo() throws Exception { GenericMessage message = new GenericMessage(new byte[]{65,66,67}); template.send("/app/binarydemo", message); } } 接收 J
8 2023-01-14
编程技术问答社区
连接到websocket时,我的状态为200,但这是一个错误?
我的错误显示在我的浏览器的控制台中: "WebSocket connection to 'ws://localhost:32768/DspClusterWebServices/myHandler' failed: Unexpected response code: 200" 我正在使用Spring Websockets 4.1.5和Tomcat 8.0.18.我的WebSocketConfigurer实现类看起来像: @Configuration @Controller @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { class MyHandler implements WebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSe
16 2023-01-13
编程技术问答社区
WebSocket会话样本不集群..春季Session-1.2.2
我正在测试Spring Sessions Websocket样本的聚类. 我正在按照文档中所述运行的样本: http://docs.spring.io/spring-session/docs/current/referent/referent/html5/guides/websocket.html .代码来自:如果我在一台Tomcat服务器上运行该应用程序,则所有这些都可以按预期工作.但是,如果我在两个服务器上运行两个应用程序都无法正常工作. 我在8080和8090的两个tomcat服务器中的每一个上启动该应用程序,然后登录到每个. 8080如预期的. 8090按预期出现,并列出了8080的用户名.但是,8090的用户名永远不会在8080上添加到列表中. 如果我刷新了8090的网页,将用户从列表中删除,并将8090的用户添加到8080的列表中.此周期继续使用两个应用程序. 看来春季会议正在共享会话信息.我看到REDIS中的两个登录条目. 我应该期望这个示例可
6 2023-01-05
编程技术问答社区
用于连接到Spring Websocket的URI路径
我有一个使用Spring MVC的WebSocket应用程序,我已定义为此教程.配置WebSocket的文件如下: package com.myapp.spring.web.controller; import java.io.IOException; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; import org.springframework.web.socket.server.standard.SpringConfigurator; @ServerEndpoint(value="/serverendpo
14 2023-01-05
编程技术问答社区
Websocket,春季启动中的身份验证
我想进行一些聊天,它已经有效,但是我无法从SecurityContextholder那里获得上下文,它总是无效的.注释@preauthorize和@secure不起作用,因为nulable SecurityContext的原因.我如何获得此上下文或校长?在普通控制器中,它有效,但与Websocket无关.我想添加有关用户的消息信息,也许还有另一种方法? 我的配置: @Configuration @EnableWebSocketMessageBroker @ComponentScan(basePackages = "com.antilamer.controller") public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry c
14 2023-01-05
编程技术问答社区