问题标签 [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.
java - SpringMVC + Websocket + 聊天初始 HttpHandshake 失败
我正在尝试在我现有的 Spring MVC 应用程序中实现聊天。我指的是来自 github 的这两个链接-
但是当我尝试通过 websocket 连接时,最初的 HttpHandhsake 似乎失败了。我已经在这里上传了我的源代码 -服务器代码。这里简要介绍一下源代码。配置类是 -
- 合约配置
- ConChactWebSocketConfig
只有 ChatController 处理 WebSocket 和 webapp/WEB-INF/pages/home.jsp 包含客户端 js。我在 Sock JS 上使用 STOMP。
因此,请查看代码并建议我进行更改以使聊天正常工作。目前,当我在网络选项卡上看到时,初始 HttpHandshake 似乎失败了,因为切换协议请求的延迟非常高(它永远不会返回)。
从网络和控制台面板 编辑屏幕截图 -
java - STOMP vs WAMP over Spring-WebSockets
我目前正在开发一个需要使用 WebSockets 的项目。客户端将只是浏览器,因此对这两者的任何消息代理功能不感兴趣。
虽然我认为这不会有太大的不同,但如果我能得到一些关于STOMP与WAMP作为使用 Spring-WebSockets 的子协议的评论,我会很感兴趣。
我可能会得到一些提示,这些提示可能有助于选择其中一个。
干杯,
已编辑(2014 年 2 月 27 日): 因为,直接使用 webSockets 编程是低级的,因此在许多地方(其中一个 spring 文档)建议使用一些子协议。
此外,在 websocket 上使用子协议是一种原生 webSocket 安全性;就像您可以进行子协议验证一样。
还有许多其他子协议可以用来代替 STOMP 或 WAMP,例如 XMPP、AMQP。我找不到太多与这些和 webSockets 相关的信息,其中大部分仅与消息代理有关。
spring - spring sockjs 可以与不支持 javax.websockets 的容器一起使用吗
我可以将 spring sockjs 服务器与不实现 javax.websockets 的容器(例如 websphere 8.5)一起使用吗,这个 URL 提到https://github.com/rstoyanchev/spring-sockjs-protocol-webapp,但后来我的理解是 Spring 将使用它的本机实现,或者如果彗星不提供 websocket 支持,则仅使用彗星技术之一
spring - Spring 4 websockets动态MessageMapping未执行
我在 Tomcat 8 上使用 Spring 4 websockets,我有以下配置:
我的 Spring 控制器有以下方法:
所以我在这里要做的是,如果客户端 1 想向客户端 2 发送消息,他使用/app/notify/2
. 然后 Spring 控制器会将消息推送到 topic /topic/push/2
。
我在客户端中编写了以下代码:
连接完美,/project
只是我的应用程序的上下文根。
我的客户端中也有以下代码来发送消息:
两个变量 (client
和id
) 都是可访问的,我没有从这部分代码中得到任何错误,并且我可以在控制台中看到消息实际上已发送:
但是,System.out.println()
我的控制器中的语句永远不会执行,所以我认为我的控制器映射有问题或者我没有正确使用目标端点(我不明白为什么我必须在这里指定应用程序前缀,但不是连接到该端点时)。
java - 在 Spring Websocket 上向特定用户发送消息
如何仅将 websocket 消息从服务器发送到特定用户?
我的 webapp 有 spring 安全设置并使用 websocket。我在尝试仅将消息从服务器发送给特定用户时遇到了棘手的问题。
我阅读手册的理解来自我们可以做的服务器
在客户端:
但我永远无法调用订阅回调。我尝试了许多不同的路径,但没有运气。
如果我将它发送到/topic/reply它可以工作,但所有其他连接的用户也会收到它。
为了说明问题,我在 github 上创建了这个小项目:https ://github.com/gerrytan/wsproblem
重现步骤:
1) 克隆并构建项目(确保您使用的是 jdk 1.7 和 maven 3.1)
2) 导航到http://localhost:8080
,使用 bob/test 或 jim/test 登录
3) 单击“请求用户特定消息”。预期:仅针对此用户的“仅接收给我的消息”旁边显示消息“hello {username}”,实际:未收到任何消息
websocket - Spring 4 websocket在应用程序关闭时未关闭
所以这是一个奇怪的问题。我有一个基本的 Spring 4 websockets 应用程序在 Glassfish 4 上运行,使用 RabbitMQ 作为消息代理,没什么特别的。我正在测试 websocket 客户端的持久性(一个在 java 中,一个在 javascript 中使用 stomp.js 和 socks.js),并注意到当我从 glassfish 取消部署应用程序时,两个客户端都会认为 websocket 仍在运行。为了好玩,我添加了一个从每个客户端到服务器的重复 ping 请求来模拟心跳。当应用程序启动时,ping 请求运行良好,我从服务器收到 pong 响应,但是当我从 glassfish 取消部署应用程序(模拟断开连接)时,我仍然从服务器获得成功的 ping 和 pong 消息。在我看来,当应用程序被取消部署时,它应该向所有连接的客户端发送断开消息,这些客户端将调用它们的重新连接逻辑来访问集群中的另一台服务器。有没有人见过类似的行为???谢谢你的帮助!
spring-websocket - Spring websocket设置握手处理程序/拦截器
我尝试handshake handler
通过 xml 配置进行设置:
但在连接时也使用 DefaultHandshakeHandler。我做错了什么?
spring-websocket - Spring WebSockets - 浏览器突然关闭连接时管道损坏
我在这里遇到了 spring-wesockets 的问题。当页面刷新时,服务器会抛出一个由损坏的管道引起的 IOException。
作为服务器思考,这是正常的行为。但是作为客户认为刷新页面或离开是正常的。
配置:
由于我使用的是 SimpleBroker,有没有办法捕捉和处理异常?
java - 使用 sockjs 踩过套接字无法与 Spring 4 WebSocket 连接
尝试使用 sockjs 在套接字上使用 Spring 4 WebSocket 和 STOMP。我遇到了一个问题。
我的配置:
websocket.xml - spring 上下文的一部分
控制器代码:
客户端:
输出:
我做错了什么?
我在 google 中找到了示例(TickerStocks 或类似的东西,问候应用程序(Spring 的示例)),所有这些都给了我同样的错误。我尝试使用带有握手的 WebSocket(没有 sockjs) - 结果相同)。
补充资料:
方法public AjaxResponse hello();
放置在根上下文“/”上的 IndexController 中。所以我可以提供完整的路径:http://localhost:8080/ws
。部署经过测试的tomcat7和tomcat8。
spring - Spring 应用程序未在 tomcat 7.0.47 中加载,但在 Tomcat 7.0.34 中加载
我在 spring web sockets 文档Spring WebSockets中看到了20.4.11 Configuration and Performance下的以下代码。我很惊讶没有方法,也没有类WebSocketTransportRegistration
。我正在使用 Spring Web 套接字 4.0.2.RELEASE。
我错过了什么?