问题标签 [tyrus]

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 回答
171 浏览

java - 独立于服务器的 WebSocket 实现

我正在尝试为独立于服务器的 WebSocket 实现寻找解决方案,Tomcat 内置的 WebSocket API 很好,但它没有在 Weblogic 和其他服务器中运行。我找到了一个使用 Tyrus API 的解决方案,但是 Tyrus 的所有示例都是使用 grizzly Web 服务器完成的,它使用新端口启动一个单独的服务器以接受 ws:// 请求,但它还有另一个选项是 ServerContainer,它将在其中与任何 Servlet Container Web 服务器一起使用,并且将仅使用现有的服务器端口,但不幸的是我没有找到任何示例..我也期待任何其他选项......

0 投票
2 回答
568 浏览

java - Lambda 在 Websocket 会话中不起作用

刚刚遇到一个奇葩的小问题:

有人知道为什么 lambda 表达式在这种情况下不起作用吗?没有编译错误,没有异常,没有什么。方法 ''onMessage'' 只是没有被调用。

我使用 Java 1.8.0_65 和 Tyrus 参考实现 1.9。

0 投票
1 回答
83 浏览

websocket - 网络套接字。泰鲁斯。客户端连接到套接字的时间

如何获得客户端连接到套接字的时间?

0 投票
0 回答
3549 浏览

java - 使用 tyrus 的客户端/服务器 java websocket

我一直在倾诉这里提出的关于在 java 中使用 websockets 的所有问题,但似乎没有一个能阐明我的问题。我有一个部署到 glassfish 4.0 的服务器,删除了上下文根,或者基本上设置为“”。这是由项目负责人出于与我的代码无关的其他原因完成的。我已经将服务器发布到本地 glassfish 安装,并使用简单的“ping”方法验证了它的工作原理。这是我的服务器端点代码。

}

在查看了尽可能多的示例和我能找到的所有文档之后,这似乎是正确的。现在这是我使用 tyrus 客户端独立 jar 的客户端代码。

这是我为客户准备的主要课程

最后,堆栈跟踪:

如果您需要有关该项目的更多信息,请告诉我。由于 404 错误,我认为我的 url 不正确,尽管我已经测试了服务器并且它确实驻留在 localhost/app 以获取 http 资源,据我了解,这意味着 ws: 将位于 localhost:8080/“这里”。如果此处的任何信息不正确或缺少,请再次告诉我。感谢您提前提供任何帮助

0 投票
1 回答
8911 浏览

java - Tyrus wss:// websocket 未通过 squid 代理

这是使用 Java 8、squid 3.1.2 和tyrus-standalone-client-1.12.jar用于 websocket 实现的。


更新:它仍然不适用于 Tyrus。但是,似乎问题不在于 squid,因为当我让 Chrome 使用代理并在此处连接到 SO 时,连接wss://qa.stackoverflow.com通过 squid 代理并且工作正常。


我正在使用接受的javax.websocket 客户端简单示例答案中给出的测试程序来尝试运行 squid 代理。

但是,我已将其更改为使用 websockets.org 回显服务器,因此 URI 从更改wss://real.okcoin.cn:10440/websocket/okcoinapiwss://echo.websocket.org.

当我不使用代理时,测试程序可以正常使用wss://echo.websocket.organd ws://echo.websocket.org

-Dhttp.proxyHost当我通过, -Dhttp.proxyPort,指定 JVM 范围的代理时-Dhttps.proxyHost,URI 可以正常工作,但不能正常工作。-Dhttps.proxyPortws://wss://

我已经(使用 tcpdump)验证了流量会流向代理,测试程序正在向CONNECT代理发送 a,并且代理会发回Connection established. 但是,此时没有其他任何事情发生:

这并不是代理在 Java TLS 连接方面存在问题。如果我改为(仍然使用 Java 8)https://www.google.com通过代理建立一个普通的 HTTPS 连接(比如说),我看到CONNECT客户端发送相同的内容Connection established并且代理发送回相同的内容,但是 TLS 握手等正常进行并且请求/响应正常完成。

坦率地说,我对正在发生的事情(或者更确切地说没有发生)感到困惑。

0 投票
1 回答
214 浏览

java - Tyrus:静默服务器启动失败

我们目前正在尝试使用Tyrus实现 WebSocket 服务器,一切正常(服务器-客户端通信运行良好),直到我们尝试测试如果服务器初始化失败(例如端口错误)会发生什么。

底层代码抛出 SocketException(权限被拒绝)。异常被写入标准输出,但服务器继续,程序继续超出 start() 方法。

有什么方法可以检测服务器是否启动成功?

编辑:我们知道我们不能使用端口 10(这就是我们尝试它的原因)。我们只需要检查服务器是否正在运行(通过某种方式捕获异常)。(而且我们不想通过尝试向客户端发送一些虚拟数据来测试它——这并不能真正解决问题)

0 投票
0 回答
679 浏览

android - 偶尔发生握手错误 - 使用 tyrus 客户端 android

以下问题偶尔会发生.. 我看过一些帖子,例如 Websocket SSL 握手失败 请不要将此问题标记为重复,除非有具体答案。我无法解决 tyrus 客户端究竟需要做什么或哪个库支持在安卓上使用 SSL...

以下是例外情况:

0 投票
1 回答
1124 浏览

java - WS 服务器的 CPU 使用率异常

我使用 Tyrus 实现制作了一个 websocket 服务器,它占用了 50% 的 cpu 使用率,但我不知道为什么。一开始我以为是进程,后来我写了一个非常简单的ws服务器,还是一样...

这是资源监视器 (Windows Server 2008 R2) 的屏幕截图:在此处输入图像描述

服务器在 Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00 Ghz 上运行,4GB 内存我不知道确切的架构...

简化ws服务器的代码:

这是我使用的库:

在此处输入图像描述

0 投票
0 回答
678 浏览

java - Tyrus 有时会在尝试连接时卡住

我正在使用tyrus-standalone-client-1.12.jar来维护与我无法控制的 Websocket 服务器(或一组服务器)的连接。我正在创建一个ClientManager我配置然后使用的实例clientManager.asyncConnectToServer(this, new URI(server)),其中this带有注释方法的类的实例在哪里@OnOpen@OnMessage等等。

我也有一个ClientManager.ReconnectHandler注册,它处理onDisconnect并且onConnectFailure当然输出调试消息。

大多数时候它连接得很好,但特别是当服务器出现问题并且我失去连接时,重新连接有时不起作用。

true当我刚返回时,我第一次注意到它,onDisconnect有时它只是不会重新连接(在这种情况下,它ReconnectHandler应该为我完成,它通常也会这样做)。程序的其余部分继续运行良好,但我的 websocket 客户端在onDisconnect.

从那以后,我将其更改为仅使用(延迟)ReconnectHandler再次连接asyncConnectToServer,以便能够切换到另一台服务器(我无法找到仅使用 的方法ReconnectHandler)。即使那样,asyncConnectToServer有时只是似乎什么也没做。我确信它会做一些事情,但它不会输出调试消息,onConnectFailure也不会调用onOpen,即使是在几个小时后,所以客户端最终只是被卡在那里。

同样,情况并非总是如此。它可以重新连接好几次,都由onDisconnect或触发onConnectFailure,然后一次尝试突然挂起。当我同时运行程序的两个实例时,都重新连接了几次,然后都asyncConnectToServer在相同的重新连接尝试中挂起,这对我来说似乎表明它是由服务器或连接的某些状态引起的。

有一次它甚至在最初连接(未重新连接)时连接失败,同时服务器似乎有问题。

  • 有谁知道可能导致这种情况的原因?
  • 我是否缺少一些属性来设置连接尝试超时?
  • 我是否缺少某种方法来检索连接失败信息ReconnectHandler.onConnectFailure
  • 我什至可以重复使用相同ClientManager的连接多次(在前一个连接关闭之后)?
  • 我的客户端端点实现中是否有某些东西以某种方式阻止onOpen或被onConnectFailure调用?

在没有收到任何错误消息并且无法重现它的情况下,很难说出发生了什么。我在程序上使用了 JConsole 的 Detect Deadlock 按钮,客户端像这样挂起,但它没有检测到任何东西(不确定是否会,但我想我会提到它)。

0 投票
1 回答
2580 浏览

websocket - javax.websocket.DeploymentException:org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer

我正在尝试使用 tyrus 项目创建一个 websocket。我收到以下错误:

我的 pom 依赖项如下所示:

非常简单的java代码:

如果我尝试添加容器依赖项

我的 mvn clean install 失败说:

编辑:上述问题在 mvn clean 后得到解决。添加了服务器容器和客户端容器包。但我仍然收到相同的运行时错误 java.lang.RuntimeException: javax.websocket.DeploymentException: org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer

我在 OSGi 环境中使用。我该如何解决这个问题。在这方面需要一些帮助。