问题标签 [java-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.

0 投票
0 回答
4598 浏览

jakarta-ee - grails 3.0.9 WebSocket 404 错误

我正在尝试使用 grails 创建聊天应用程序。我正在使用 grails 3.0.9 和 tomcat-8.0.28

抱歉重复

我读了这个问题这个......但这并不能解决我的问题......

我已经将 javax.websocket-api 更改为像这样提供:

但我仍然收到此错误:

Firefox: Firefox 无法在http://103.56.148.50/chat/chatEndPoint/C001D939F2564251C86E646B9127495D与服务器建立连接"

Chrome:WebSocket 握手期间出错:意外响应代码:404

你可以看到这个网站...

这是我的代码

这是在javascript中

这是我在 build.gradle 中的依赖项

==================================================== ==================

我试图运行:grails prod run-app

我的 websocket 变得不工作了......

但是如果我运行 grails run-app 它就可以了

那是因为ServerEndPointDemo.groovy我把在/src/main/groovy/com.akiong/ServerEndPointDemo.groovy

==================================================== ==============================

删除后我收到此错误if (Environment.current == Environment.DEVELOPMENT)

0 投票
1 回答
446 浏览

glassfish-4 - Websocket @OnOpen 未在 Glassfish 4.1.1 Payara 4.1.1.115 Tyrus 1.11 上触发

我其实是在做噩梦。我的 webapp 使用 websockets 进行聊天,问题就来了:

使用 Glassfish 4.1u13 一切正常,直到我激活了访问日志监控。从那以后,每个 ws 请求都进行了 2 次,并且 Web 套接字无法进行握手。 https://java.net/jira/browse/GLASSFISH-21007

试图更新到玻璃鱼 4.1.1 -> 问题 PERSIST

尝试切换到 Payara 4.1.1.115(这是 glassfish 的修补版本),一切顺利。我现在可以在我的 Glassfish 实例中拥有 websocket 和访问日志记录。

几分钟后注意到,当我重新加载页面时,客户端应用程序和服务器之间的通信并不总是完成。检查网络 -> 正确握手,但无法交换数据。

然后在服务器端,我制作了 2 个系统:一个在请求 servlet 的过滤器中,一个在 websocket 端点中。每个请求都到达服务器并进行握手但有时@OnOpen 不会被调用,即使 wss 升级到 101。这怎么可能?尝试更新到 Tyrus 1.12(payara 使用 1.11)并将其降级到 1.8.1(这是运行 Glassfish 4.1u13 使用的版本),但没有任何反应。

我如何调试这种行为?

0 投票
1 回答
1392 浏览

java - 我怎样才能有一个主要的方法和 websockets

我正在寻找在网络搜索中找不到的更多信息。我很可能在寻找错误的东西,我希望有人能纠正我。

我已经实现了一个客户端(javascript)-服务器(java)websocket 应用程序。我有为多个客户端工作的连接,现在我想从 main 方法创建的一些初始数据开始。但是,我的 java 应用程序中的主要方法没有链接到 websocket 端点。因此,如果我在运行应用程序时创建对象实例,我希望将该信息发送到会话操作闭环之外的连接客户端。

我所描述的听起来不可能,但我确信我只是没有正确解释它。

结论:

在处理 websockets 时,我怎样才能拥有 OnServerStartup 以便我可以加载保存的数据或创建初始数据?

背景:

我已经使用 javax.websocket.server 实现了一个带注释的服务器端点。由于出现故障可能导致我感到困惑的历史是,我首先从 java 应用程序开始,然后我想要一个客户端 UI 来添加、编辑、删除数据。所以我使用了一个通过 websockets 与我的 java 应用程序通信的 javascript 前端。现在我的应用程序无法与 websocket 连接进行通信,或者至少我还不知道如何。

理想情况下,我想做的是让用户操作通过 websocket 进入,然后我想将操作放入我的应用程序然后处理的队列中。完成后,它将对数据集的结果更改发送到所有活动会话。这里有一个大问题,因为我想在允许 websocket 连接之前初始化保存的数据。此外,如果我有一个定时事件,我希望能够将所有更新发送到连接的会话。

0 投票
1 回答
783 浏览

jetty - jetty 9 将 websockets 处理程序添加到处理程序列表

该示例中的所有处理程序都与 websockets 处理程序分开工作

它失败了

WebSocket 连接到“ws://localhost:8080/”失败:WebSocket 握手期间出错:意外响应代码:200

如何正确配置和添加 websockets 处理程序(可能使用不同的路径和端口作为 servletContextHandler 或者可以将其添加到那里?)?

0 投票
2 回答
2296 浏览

java - 在 jetty 中部署 webapps 和 websockets

我已将 Jetty 嵌入到我的应用程序中。我有一个 webapp,并且我成功地在 Jetty 中部署了该 webapp。现在我对 Websockets 有了另一个要求。我按照此链接在 Jetty 中部署 websockets。将 Websocket 部署到我的服务器后,第一个 web 应用程序无法正常工作(主页未打开)。这是图像

在此处输入图像描述

这是代码(这里很难粘贴整个代码。所以我正在粘贴webapp和websocket部署代码)。

网络应用部署:

WebSocket 部署:

WebSocketServer.java:

如果我包含上述 websocket 代码,则实际的 webapp 无法正常工作,但 websocket 代码正在运行。

那么如何在一个 Jetty 服务器中部署一个 webapp 和 websocket 呢?

更新:

我试图将 Websockets 包含在当前的 webapp 本身中,但出现以下异常。

java.lang.NullPointerException:在 org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.configureContext(WebSocketServerContainerInitializer.java:65) 处为空 ~[javax-websocket-server-impl-9.3.6.v20151106.jar: 9.3.6.v20151106] 在 com.tdg.daemon.server.RiseServer.getWebappHandlers(RiseServer.java:122) ~[classes/:na] 在 com.tdg.daemon.server.RiseServer.addWebApps(RiseServer.java:77 ) ~[classes/:na] at com.tdg.daemon.server.RiseServer.init(RiseServer.java:59) ~[classes/:na] at com.tdg.daemon.server.RiseServerConfiguration.build(RiseServerConfiguration.java :475) ~[classes/:na] at com.tdg.daemon.server.launcher.DefaultTdgServerLauncher.start(DefaultTdgServerLauncher.java:78) [classes/:na] at com.tdg.daemon.server.launcher.DefaultTdgServerLauncher。主要(默认TdgServerLauncher.java:140) [classes/:na] java.lang.NullPointerException at org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.configureContext(WebSocketServerContainerInitializer.java:65) at com.tdg.daemon.server.RiseServer.getWebappHandlers (RiseServer.java:122) 在 com.tdg.daemon.server.RiseServer.addWebApps(RiseServer.java:77) 在 com.tdg.daemon.server.RiseServer.init(RiseServer.java:59) 在 com.tdg。 daemon.server.RiseServerConfiguration.build(RiseServerConfiguration.java:475) 在 com.tdg.daemon.server.launcher.DefaultTdgServerLauncher.start(DefaultTdgServerLauncher.java:78) 在 com.tdg.daemon.server.launcher.DefaultTdgServerLauncher.main( DefaultTdgServerLauncher.java:140) [] 12/02/2015 17:50:06.985 [main - ] INFO ctdslDefaultTdgServerLauncher - RiseServer 在端口 80 和 443 上启动。

0 投票
1 回答
217 浏览

java - 在 ServerEndpoint 中存储数据

我正在使用 WebSockets 开发一个简单的应用程序。客户端您可以发送输入文本,而服务器端是通过带有注释为 ServerEndpoint 的 Java 类实现的。在这里,接收到的输入文本被解码并发送到所有打开的会话。

这可行,但我想存储服务器接收到的每条消息,以便当新客户端连接时(使用带有@OnOpen 注释的方法),它会接收在他“离线”时发送的所有消息。在不使用数据库的情况下,我可以在哪里存储这些消息?

0 投票
1 回答
60217 浏览

android - 在Android中实现websocket客户端的简单方法是什么?下面的例子正确吗?

我试图使用一个在 Android 中实现 WebSocket 客户端的类。但我收到以下错误:

我正在使用的类如下:

该类在onCreate()中被调用:

安卓清单:

SDK: minSdkVersion 16

任何人都有任何想法,可能是什么问题?似乎一切都好!先感谢您。

0 投票
1 回答
3428 浏览

java - Tomcat 关闭 websocket 连接并出现错误

对于客户,我们使用Tomcat 8.0.29构建 HTML5 websocket 应用程序。如果我们从我们的网络或家庭网络启动应用程序,一切正常。但是如果客户从他的网络启动应用程序,一段时间后 websocket 会因错误而停止。这可能在 5 或 20 分钟后发生。

我们已经在使用和不使用 SSL 的情况下以及在两个不同的服务器上对其进行了测试。只有在客户网络中,连接会因错误而中断。

我们还使用Tomcat 中包含的 websocket echo 示例进行测试。和我们的 websocket 一样。一段时间后,websocket 停止并出现错误。但前提是我们从客户网络启动应用程序。

当 echo 示例因错误而停止时,以下消息将写入 server.log

如果我们在http://www.websocket.org/echo.html上开始测试,连接不会因错误而关闭。

对我来说,这看起来像是 Tomcat 的问题。但是我该怎么做才能让它正常运行呢?

Tomcat:8.0.29(也有早期版本)
Windows 7:64 位
协议:HTTP/1.1

0 投票
1 回答
209 浏览

javascript - 为什么通过 web socket 客户端上传时文件的大小总是为零?

我有一个 websocket 客户端代码,当我通过它上传文件时,web socket 服务器会接收该文件。但大小始终为零。我正在使用来自tootallnate 的Java-Websocket 服务器。下面是我的客户端代码。

下面是我的网络套接字服务器代码。

请指教。

0 投票
0 回答
353 浏览

java - 在 Java Play Framework 中将 Web 套接字消息转换为 JSON 对象

我正在使用 Java Play 框架中的 AKKA Actors 创建一个 Web 套接字处理程序。我正在尝试解析消息并创建 JsonNode。我试过了

我收到一个错误

如何将对象转换JsonNodeJsonParser对象?或者有没有更好的方法来创建 JSON/Map 对象。