Websocket在本地主机上工作,但在Heroku上不工作
我有一个使用Websocket的应用程序(Spring),Spring在后端.应用程序在tomcat上的Localhost上工作正常(Websocket),但是当我部署到Heroku或AWS Web插座时停止工作时. 我的Websocket配置Angular2 let sockjs = new SockJS('/rest/add?jwt=' + this.authService.getToken(), {"devel":true,"debug":true}, {"transports":["websocket"]}); 我也尝试了 {"disabled_transports":["websocket"]} ,但两者都失败了. web.xml
20 2024-02-20
编程技术问答社区
与iOS和Android客户端连接到SockJS后端
我正在使用 spring websockockets sockjs + Stomp协议.不使用普通网站插款的原因是因为我需要利用sockjs在弹簧Websocket中提供的安全集成以及sockjs的其他整洁功能,例如房间,订阅等.我想知道这是否是使用的好选择因此,移动设备(iOS和Android)以及Web客户端应用程序可以轻松连接到后端服务器并执行消息传递.如果是,那么我可以将哪些库用于iOS和Android. on sockjs github page 他们也在列出可用的客户端库,但没有ios nor Android.因此,我想知道Sockjs是否仅仅是因为这是值得使用的. 我发现iOS客户端 primus-objc ( github page github page )连接到native WebSockets, Socket.IO, SockJS or perhaps engine.io.这是一个真实的说法吗?事件如果是真的,该库的质量又如何? 和事件如果可以在背
4 2024-02-02
编程技术问答社区
为什么SimpUserRegistry在EC2 Instance上不能正常工作?
我正在使用SimpUserRegistry获取在线用户计数(getUserCount()).它在我的本地机器上工作良好,但在AWS EC2实例(使用Amazon Linux和Ubuntu尝试)上不使用弹性IP,而没有负载均衡器. EC2上的问题是,某些用户在连接时永远不会添加到注册表中,因此我得到了错误的结果. 我有会话听众,对于SessionConnectedEvent和SessionDisconnectEvent,我使用SimpUserRegistry(自动)来获取用户的存在.如果重要的话,我也是SimpUserRegistry是一个消息传递控制器. 以下是WebSocket消息代理: @Order(Ordered.HIGHEST_PRECEDENCE + 99) @Configuration @EnableWebSocketMessageBroker @RequiredArgsConstructor(onConstructor = @__(@Autowire
4 2024-01-24
编程技术问答社区
Websockets/stomp with activemq artemis on Wildfly 10不起作用
我正在使用Spring Webockets实施WebSockets应用程序. 作为一个踩踏经纪人,我想使用Wildfly的Artemis(Active MQ). 我在独立的-full.xml中进行了以下配置: 添加以下受体: 添加一个新的应用程序用户访客/访客在应用程序 - 用户中. 添加以下stompconfiguration(缩写): @Configuration @EnableWebSocketMessag
16 2024-01-10
编程技术问答社区
带有嵌入式ActiveMQ代理的Spring Boot WebSocket
我尝试使用Spring Boot 1.5.4将Web应用程序从简单的经纪人更改为带有Stomp的嵌入式ActiveMQ经纪人,但始终在启动 上遇到错误 Caused by: java.lang.IllegalArgumentException: No handlers at org.springframework.util.Assert.isTrue(Assert.java:92) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.start(SubProtocolWebSocketHandler.java:244) ~[spring-websocket-4.3.9.RELEASE.jar:4.3.9.RELEASE] at org.springframework.conte
20 2024-01-10
编程技术问答社区
Spring Boot SSL TCPClient ~ StompBrokerRelayMessageHandler ~ ActiveMQ ~ Undertow
我正在尝试基于 spring websocket demo 运行 activemq 作为使用如Spring Websocket文档中所述... 上面配置中的" Stomp Broker继电器"是Spring MessageHandler,通过将消息转发到外部消息代理来处理消息.为此,它建立了与经纪人的TCP连接,将所有消息转发给它,然后通过其Websocket会议将收到的所有消息转发给客户.从本质上讲,它是一个"继电器",可以向两个方向转发消息. 此外,文档指出了对 deactor-net 我有... 请在org.projectReactor:用于TCP连接管理的反应器网络上添加依赖项. 问题是我当前的实施未初始化 nettytcpclient 通过SSL,因此ActiveMQ连接失败了. > [r.i.n.i.n.t.NettyTcpClient:307] » CONNECTED: [id: 0xcfef39e9, /127.0.0.1:17779 =
12 2024-01-10
编程技术问答社区
如何用Spring WebSocket向STOMP客户端发送ERROR消息?
我正在使用一个功能齐全的ActiveMQ经纪人使用Spring的stomp在WebSocket实现上.当用户SUBSCRIBE到一个主题时,在成功订阅之前,必须通过一些权限逻辑.我正在使用ChannelInterceptor来应用权限逻辑,如下所示: websocketconfig.java: @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/stomp") .setAllowedOrigins("*") .withSockJS(); } @Override
14 2024-01-10
编程技术问答社区
spring websockets:向离线用户发送消息--消息代理中没有排队的消息
我使用消息代理(ActiveMq)有一个带有弹簧和Websocket的WebApp. 这是我的配置类: @Configuration @EnableWebSocketMessageBroker @EnableScheduling public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableStompBrokerRelay("/topic","/queue/"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpoint
28 2024-01-10
编程技术问答社区
STOMP或XMPP-Over websocket
我正在从事一个涉及实时聊天的项目(消息,包括小组聊天). 我以前曾与Websockets合作,因此我开始使用Spring-Websockets来处理此问题,并阅读了什么是实施它的最佳方法.然后我遇到了Stomp(作为Websocket的子协议),并且由于春季对Stomp有直接的支持,因此很容易实现我应该做的事情. ,但我的疑问是我的理解是Stomp和XMPP是类似的协议(消息协议),但是我找不到任何问题/博客解释差异的问题/博客,为什么有人会更喜欢彼此? 如果有人解释了这两个协议有何不同,这真的很有帮助? 谢谢. 解决方案 作为Jabber的继任者,XMPP更专注于即时消息传递而不是Stomp. XMPP是一种可扩展的协议,可以用于其他目的,但是有关IM的内置机制和实现. Stomp在这里提供了一种更通用的机制和"消息",它提到了广泛的含义. 假设您为项目选择Stomp.那么,您可能需要为某些情况(点对点,组聊天)定义基本消息,这些消息已由XMPP提
18 2023-12-23
编程技术问答社区
Wildfly中的Spring Boot Websockets
嗨,我需要将我的Spring Boot应用程序部署到Wildfly 8.1中,并且我会得到以下例外: 引起的: 在io.undertow.servlet.core.core.deploymentmanagerimpl.deploy(DeploymentManagerimpl.java:219) 请访问org.wildfly.extension.undertow.deployment.undertowdeploymentservice.startcontext(counterwdeploymentservice.java:87) at org.wildfly.extension.undertow.deployment.undertowdeploymentservice.start(counterwdeploymentservice.java:72) 请访问org.jboss.msc.service.servicecontrollerimpl $ starktask.startserv
16 2023-12-04
编程技术问答社区
如何排除故障并解决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
16 2023-12-02
编程技术问答社区
使用什么Uri路径来连接Spring WebSocket?
我有一个使用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="/serveren
14 2023-12-02
编程技术问答社区
WebSocket,Spring Boot中的认证
我想进行一些聊天,它已经有效,但是我无法从SecurityContextholder那里获得上下文,它总是无效的.注释@preauthorize和@secure不起作用,因为nulable SecurityContext的原因.我如何获得此上下文或校长?在普通控制器中,它有效,但与Websocket无关.我想添加有关用户的消息信息,也许还有另一种方法? 我的配置: @Configuration @EnableWebSocketMessageBroker @ComponentScan(basePackages = "com.antilamer.controller") public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry c
10 2023-12-02
编程技术问答社区
使用Spring 4的错误打开Websocket连接
我正在尝试使用 此教程 .一切都很好,除了我尝试打开W​​ebsocket连接时,我会在浏览器控制台上收到以下错误,而根本没有发生任何事情.请帮助我. 错误: Opening web socket... GET http://localhost:8080/hello/info?t=1445510124841 404 (Not Found) Whoops! Lost connection to http://localhost:8080/hello testcontroller.java package com.test.controller; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annot
14 2023-12-02
编程技术问答社区
Spring Boot Stomp Websocket在本地工作,但在已部署的服务器上不起作用
我有一个踩踏客户端和Spring后端,该代码在本地时可以正常工作,但部署到服务器时则无法连接到服务器. @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/tracker").setAllowedOrigins("*"); } } JavaScript客户端启动与以下连接: var socket = new websocket(" ws://localhost:8080/
10 2023-12-02
编程技术问答社区
为什么没有一种连接和发送websocket的方法?
我是新的Websocket,并参考了以下Spring Websocket教程,并且在我的系统中工作正常.我也在使用Stomp.js和Sockjs-0.3.4.js. https://spring.io/guides/guides/guides/ggs/messaging-stomg-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-12-02
编程技术问答社区
从集群中的Spring websocket-sendToUser不能从备份服务器中工作
我们有一个带有Spring Websocket配置的Spring MVC('Spring-Websocket',版本:'4.1.0.Release'). 我们有一个简单的类,可以执行以下代码: @Autowired private SimpMessagingTemplate template; @Override public void push(Long userId, Object message, WebsocketQueue queue) { String loginName = this.userRepository.getLoginName(userId); this.template.convertAndSendToUser( loginName, queue.getMapping(), message); } 这与单个t
6 2023-12-02
编程技术问答社区
无法用Spring Websocket发送用户信息
我阅读了有关用户目的地的春季文档. 我想使用convertAndSendToUser方法仅向特定用户发送消息. 这是Java代码: @Controller public class WebsocketTest { @Autowired public SimpMessageSendingOperations messagingTemplate; @PostConstruct public void init(){ ScheduledExecutorService statusTimerExecutor=Executors.newSingleThreadScheduledExecutor(); statusTimerExecutor.scheduleAtFixedRate(new Runnable() { @Override publ
0 2023-12-02
编程技术问答社区