问题标签 [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.
java - 独立于服务器的 WebSocket 实现
我正在尝试为独立于服务器的 WebSocket 实现寻找解决方案,Tomcat 内置的 WebSocket API 很好,但它没有在 Weblogic 和其他服务器中运行。我找到了一个使用 Tyrus API 的解决方案,但是 Tyrus 的所有示例都是使用 grizzly Web 服务器完成的,它使用新端口启动一个单独的服务器以接受 ws:// 请求,但它还有另一个选项是 ServerContainer,它将在其中与任何 Servlet Container Web 服务器一起使用,并且将仅使用现有的服务器端口,但不幸的是我没有找到任何示例..我也期待任何其他选项......
java - Lambda 在 Websocket 会话中不起作用
刚刚遇到一个奇葩的小问题:
有人知道为什么 lambda 表达式在这种情况下不起作用吗?没有编译错误,没有异常,没有什么。方法 ''onMessage'' 只是没有被调用。
我使用 Java 1.8.0_65 和 Tyrus 参考实现 1.9。
websocket - 网络套接字。泰鲁斯。客户端连接到套接字的时间
如何获得客户端连接到套接字的时间?
java - 使用 tyrus 的客户端/服务器 java websocket
我一直在倾诉这里提出的关于在 java 中使用 websockets 的所有问题,但似乎没有一个能阐明我的问题。我有一个部署到 glassfish 4.0 的服务器,删除了上下文根,或者基本上设置为“”。这是由项目负责人出于与我的代码无关的其他原因完成的。我已经将服务器发布到本地 glassfish 安装,并使用简单的“ping”方法验证了它的工作原理。这是我的服务器端点代码。
}
在查看了尽可能多的示例和我能找到的所有文档之后,这似乎是正确的。现在这是我使用 tyrus 客户端独立 jar 的客户端代码。
这是我为客户准备的主要课程
最后,堆栈跟踪:
如果您需要有关该项目的更多信息,请告诉我。由于 404 错误,我认为我的 url 不正确,尽管我已经测试了服务器并且它确实驻留在 localhost/app 以获取 http 资源,据我了解,这意味着 ws: 将位于 localhost:8080/“这里”。如果此处的任何信息不正确或缺少,请再次告诉我。感谢您提前提供任何帮助
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/okcoinapi
为wss://echo.websocket.org
.
当我不使用代理时,测试程序可以正常使用wss://echo.websocket.org
and ws://echo.websocket.org
。
-Dhttp.proxyHost
当我通过, -Dhttp.proxyPort
,指定 JVM 范围的代理时-Dhttps.proxyHost
,URI 可以正常工作,但不能正常工作。-Dhttps.proxyPort
ws://
wss://
我已经(使用 tcpdump)验证了流量会流向代理,测试程序正在向CONNECT
代理发送 a,并且代理会发回Connection established
. 但是,此时没有其他任何事情发生:
这并不是代理在 Java TLS 连接方面存在问题。如果我改为(仍然使用 Java 8)https://www.google.com
通过代理建立一个普通的 HTTPS 连接(比如说),我看到CONNECT
客户端发送相同的内容Connection established
并且代理发送回相同的内容,但是 TLS 握手等正常进行并且请求/响应正常完成。
坦率地说,我对正在发生的事情(或者更确切地说没有发生)感到困惑。
java - Tyrus:静默服务器启动失败
我们目前正在尝试使用Tyrus实现 WebSocket 服务器,一切正常(服务器-客户端通信运行良好),直到我们尝试测试如果服务器初始化失败(例如端口错误)会发生什么。
底层代码抛出 SocketException(权限被拒绝)。异常被写入标准输出,但服务器继续,程序继续超出 start() 方法。
有什么方法可以检测服务器是否启动成功?
编辑:我们知道我们不能使用端口 10(这就是我们尝试它的原因)。我们只需要检查服务器是否正在运行(通过某种方式捕获异常)。(而且我们不想通过尝试向客户端发送一些虚拟数据来测试它——这并不能真正解决问题)
android - 偶尔发生握手错误 - 使用 tyrus 客户端 android
以下问题偶尔会发生.. 我看过一些帖子,例如 Websocket SSL 握手失败 请不要将此问题标记为重复,除非有具体答案。我无法解决 tyrus 客户端究竟需要做什么或哪个库支持在安卓上使用 SSL...
以下是例外情况:
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 按钮,客户端像这样挂起,但它没有检测到任何东西(不确定是否会,但我想我会提到它)。
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 环境中使用。我该如何解决这个问题。在这方面需要一些帮助。