问题标签 [spring-websocket]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 添加 websocket 处理 xml 后 Spring 4 项目无法正常工作
我有一个运行良好的 spring4 webapp,但是在添加 spring websocktes 配置 xml 后,我的应用程序拒绝映射任何 http get 请求。错误消息:Dispatcher servlet 找不到此映射的任何处理程序。
我的 web.xml 看起来像
我的 webapplication-servlet.xml 看起来像
直到现在一切正常,因为我从调度程序 servlet 获取每个请求映射
但是在我的应用程序中集成spring websockets之后,我的调度程序servlet不会将任何http请求映射到我的任何控制器。我在我的 webapplication-servlet.xml 中添加了下面的代码片段,我也尝试在我的应用程序上下文中添加它。
spring - Spring 4 WebSockect over STOMP 身份验证
我正在开发基于 Spring 4 WebSocket 的多人游戏。我的服务器是无状态的,所以为了识别我使用令牌的玩家。
在为如何通过 WebSockets 识别玩家而苦苦挣扎了一段时间之后,我想出了这个解决方案:在客户端玩家注册是这样的:
这会将令牌添加到 url,我已经使用 spring security 设置了一个过滤器:
它有效!在所有 WebSockets 请求中,我都有一个 Principal 集。
然而,一些浏览器似乎不支持这一点,例如在Safari中没有设置 Principal,在调试请求时我看到 URL 是正确的并且过滤器工作但没有设置 Principal。同样适用于 IE、Chrome 和 FF 作品。我使用 STOMP ( https://github.com/jmesnil/stomp-websocket ) 作为消息协议。
为什么浏览器之间有不同的行为?是 Spring 还是客户端问题?
spring - Spring消息传递websockets - 如何调用setMessageCodec
我正在尝试使用 Spring websocketsGenson
而不是Jackson
. 当我尝试从客户端连接时,我得到以下信息:
看来我需要设置自定义消息编解码器。
我可以看到一个.setMessageCodec
方法出现在上,TransportHandlingSockJsService
但我看不到配置选项中可以实际设置它的任何地方。
我认为该.setMessageCodec
方法应该存在于SockJsServiceRegistration
类中,因此可以从配置中设置它......但它不是......任何想法?
编辑:我相信这是一个错误,所以提出了:https ://jira.spring.io/browse/SPR-12091
java - spring如何调用websocket服务器向客户端发送消息
我的项目使用spring框架
WebSocketConfig.java
SystemWebSocketHandler.java
我的jsp客户端
这是我的 websocket 代码,它运行良好
现在我想在控制器中向客户端发送消息,这是我的控制器
我想打电话
向客户端发送消息但 systemWebSocketHandler 为空
如何将systemWebSocketHandler注入控制器或其他一些想法来完成所需的?比如服务器需要向客户端发送消息时连接到websocketserver,完成后关闭
我的英语很差,但我正在努力学习
java - 如何限制客户端连接到我的 stomp websocket 处理程序?
我需要跟踪在 Spring 4.x 中向我的 stomp 代理打开 websocket 的用户。stomp 端点以通常的方式配置:
我尝试实现 ApplicationListener 接口以接收 SessionConnectEvent SessionConnectedEvent 但我无法从这些事件中获取远程主机 ip。
我应该如何让客户端的 ip 连接到我的服务?
我的目标是限制从同一个 ip 到我的 websocket 处理程序的连接数。
java - 在 Spring 中定义一个“只发送”的 WebSocket 服务器
我想在Spring Web中实现一个WebSocket服务器(由Spring Boot管理),它只允许连接的客户端接收数据流,例如简单的纯文本或STOMP消息。我正在阅读官方网站上的文档和指南,但在这些情况下,他们认为是双向对话(客户端也可以向服务器发送消息)。
对于我的场景,以正确的方式表示 WebSockets(是的,我是这个领域的新手)?
如果是,我该如何实现 WebSocket?我应该定义一个
@Controller
和一个处理程序吗?此外,是否可以只允许给定客户端的通信(通过设置路由、IP 地址、令牌等)?
干杯,V。
spring - Spring websocket从stomp id获取用户订阅
使用 Spring 4.0.4,我制作了一个 DisconnectHandler,它在 SessionDisconnectEvent 上实现 ApplicationListener。
我可以从事件中获取 sessionid,但是如何获取该 sessionid 的订阅列表,即用户?
java - 通过 ServletContextListener 中的 SimpMessagingTemplate 向所有客户端发送消息
我正在使用 Spring 框架,并且我有一个可以工作的 websocket 控制器,如下所示:
我也有这个配置:
那部分效果很好!我可以使用 Stomp.js 在两个或多个浏览器之间成功发送和接收消息。这是不起作用的部分。我已经实现了一个ServletContextListener
包含自定义对象的对象,为简单起见,我将其称为“通知程序”。通知程序侦听服务器端发生的某些事件。然后它调用“通知”方法,该方法应该将有关事件的详细信息发送给所有客户端。但是,它不起作用。
我没有例外。SimpMessagingTemplate
已经被Spring成功注入,所以它不为空。我已经能够进入 Spring 代码并发SimpleBrokerMessageHandler
现在subscriptionRegistry
使用SimpMessagingTemplate
. 因此,它必须是与控制器正在使用的实例不同的实例。我怎样才能获得subscriptionRegistry
控制器使用的相同内容?
spring - 在 Spring 4 中配置 WebSocket 服务器
我正在使用Spring 4通过WebSockets开发实时通知系统。
源代码如下:
网络套接字配置:
LRTStatusListener:
CheckLRTStatusController
该应用程序通过每 2000 毫秒更改一次信息来模拟长期运行事务 (LRT) 的状态。
现在,我通过SockJS定义客户端来测试 WebSocket :
连接工作正常,但我无法看到数据流。
如何正确配置我的应用程序,以便在客户端控制台上生成并路由 WebSocket 服务器发送的消息?
请注意,我还使用内置消息代理来管理消息队列。
spring - 如何使用spring从服务器关闭websocket
我正在使用 spring 框架和 spring websocket 4.0.6。
我正在使用 web-socket,我需要找到从服务器关闭它们的方法。
有办法吗?