问题标签 [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 投票
1 回答
1882 浏览

java - 在 Openshift 中使用 Tyrus 的 Websocket

我使用 Tyrus 部署了一个 Wildfly 8.1 java 应用程序来管理 websocket 服务器,没什么太复杂的,它只是接收消息并响应消息反转,嗯,它应该可以工作,一切都按照 OpenShift 教程进行,但是在部署时,我明白了rhc 尾部消息:

当我尝试连接到套接字时,我可以连接,但它可以作为它的先前版本工作(没有反转)。

这是Websocket服务器源:

而且,我的服务器来源:

我有点迷茫,不知道还能做什么,似乎 javascript websocket 非常简单并且运行良好,但我需要它 java,因为我将使用该套接字用于 Sphinx CMU。

任何帮助表示赞赏,在此先感谢!

0 投票
3 回答
9650 浏览

ssl - Websocket SSL 握手失败

我有用于安全 websocket 连接的 spring-boot Tomcat 服务器。服务器接受 Android 4.4、iOS、Firefox 和 Chrome 客户端而不会失败,并带有授权签名的证书。但是,Android 5.0 无法通过 SSL 握手。

我认为问题在于 TLS 或密码套件,因为Android 5.0 Lollipop 发生了变化,而不是证书,因为其他客户端连接,但我不知道如何判断连接的客户端发生了什么,因为SSL Android 似乎不支持调试。该问题可能与此问题非常相似,该问题也尚未解决,但表明问题出在密码套件上。Android 错误88313 81603 developer-preview-1989似乎表明 Android 实现是正确的,但服务器配置或密码套件的实现可能不正确。

我设置了以下服务器密码套件

特别是,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 在适用于 API 11+的 Android 支持的协议列表中。

我验证了服务器支持这个

返回

openssl 和 java 之间的名称略有不匹配,但openssl 文档说它们是相同的密码套件。

我的服务器首先支持并与与 Android 5.0 兼容的 openssl 客户端协商一个密码套件。我希望 Android 5.0 可以毫无问题地连接,但它失败了。

有没有人成功地将 Android 5.0 安全 websocket 连接连接到 Tomcat?是否有已知可以工作的密码套件?有没有办法调试 Android 客户端 SSL 实现?


更新

网络追踪结果:

当 Android 5.0 设备(Nexus 5)接收到以 4-5 个数据包发送的服务器证书信息时,它会以可变数量 (2-4) 的 ACK 响应,然后是 FIN、ACK。在成功的跟踪中,客户端不发送 FIN。Android 5 客户端不喜欢它从服务器获得的东西。

对于失败,服务器 SSL 调试信息说:


更新 2

这是一个简单的 Tyrus Android 应用程序使用

0 投票
2 回答
2246 浏览

http - 如何使用 Tyrus java 客户端在初始 WebSocket 客户端请求中包含 cookie?

我正在使用 Tyrus 客户端包从我的 Java 应用程序中使用一个 websocket 端点,该端点在初始客户端请求中需要一个 cookie 标头。浏览 Tyrus 客户端 API 文档和 Google 并没有让我走得太远。任何想法如何去做这件事?

0 投票
0 回答
602 浏览

android - 使用 Tyrus websockets 时 Android Studio 出错

我使用 android studio 使用最新的 Tyrus 构建了一个带有 websockets 的 android 应用程序。我已经通过 gradle 包含了这个库,就像 build.gradle 一样

使用 android 定位版本

每次我运行编译按钮时,我都会收到以下错误

我的应用程序基于以下示例

https://github.com/pavelbucek/tyrus-client-android-test

0 投票
3 回答
1344 浏览

java - Tyrus 服务器可以使用内部类端点吗?

我在让一个极其简单的独立 Tyrus websocket 服务器工作时遇到问题。我已经让它在对我没有意义的非常具体的情况下工作。

正常工作的情况是我定义了一个顶级(在它自己的文件中)服务器端点类并使用@ServerEndpoint 对其进行注释。此类包括使用@OnOpen、@OnMessage 和@OnClose 注释的方法,这些都是典型的东西。我将此类传递给 Server 构造函数。我的简单客户端可以连接到该服务器,并成功发送服务器接收到的消息。

当我将顶级服务器端点类更改为初始化服务器的类的内部类时,就会出现问题(这是我所做的唯一更改)。在这种情况下,我的客户端可以连接并调用客户端的 @OnOpen 方法。但是服务器不会实例化服务器端点,因此它的 @OnOpen 方法永远不会被调用。显然,服务器消息接收不会发生。

Tyrus 是否要求带注释的服务器端点类不能是内部类?如果没有,服务器端点类是否有特定权限(所有内容都已公开,试图让它正常工作)?我在 Mac OSX 1.9.5 上使用 Tyrus 1.9 和 JDK 1.7。

简单服务器(包括并配置为使用失败的内部服务器端点):

简单的客户端:

最后是在服务器使用它时工作的非内部类服务器端点:

0 投票
1 回答
4748 浏览

java - 在 Websocket 会话中访问 UserAgent?

使用 Java 的“JSR 356 - Java API for WebSocket”的 Tyrus 参考实现,我找不到访问用于 Websocket 升级的 HTTP 连接的方法。因此,我无法访问浏览器发送的 HTTP 标头。

有没有办法读取 HTTP UserAgent 标头?

将“会话”对象转换为“TyrusSession”或类似对象是可以接受的,无论如何我都必须这样做才能获得远程地址。在 Websocket 连接中再次发送 UserAgent 作为消息将是我的后备解决方案。

0 投票
3 回答
19568 浏览

java - 连接到安全的 websocket

我正在尝试使用 Jetty(或任何其他库)连接到安全的 websocket。

问题是我收到“未找到受信任的证书”错误。我正在使用使用 keytool 生成的自签名证书。可以做些什么?

这是 Tyrus websocket 客户端的尝试,我没有收到 SSL 错误,但它什么也没打印:

相比之下,JS/node 中的这个简单代码有效

我很高兴知道 Java 中有一个工作的 websocket 客户端

0 投票
4 回答
13784 浏览

java - 最小的 java8 nio 安全 websocket 客户端 (wss)

我花了相当长的时间来寻找可以与 wss 一起使用并且不会一团糟的简单 java websocket 客户端......

我试过https://github.com/TooTallNate/Java-WebSocket

在他描述时添加了依赖项,复制了 SSLClientExample.java 以使用 websocket.org 回显服务器对其进行测试,但在第 84 行出现编译错误,没有这样的方法 setSocket()...(卡在这里)

我尝试了 tyrus(似乎这是一个由 oracle 直接开发的大型库),但似乎我需要运行一些应用服务器(websocket 容器)才能使用它......

我想知道 websockets 有什么困难,以至于需要有 netty 或 glassfish 或 grizly 呢?

我认为可以使用 SSLEngine (wss) 和纯 java sdk 来实现一个……关于 websockets 有什么我不知道的吗?(我想它很像普通的插座)

0 投票
1 回答
473 浏览

java - Arduino websocket 客户端和 Tyrus websocket 服务器消息通信问题?

我正在使用以下 Arduino 函数通过 websocket 通信发送数据:

这个函数属于这个 Arduino websocket 客户端实现

我使用 Tyrus 项目的 java websocket 服务器代码如下:

上述代码中的 ArduinoEndPoint 类代表了@onMessage、@onOpen 和@onClose 注释方法的简单实现。

我的问题是,当我从 Arduino 发送少于 25 个字符的消息时,它会在服务器上收到,但不会收到所有超过 25 个字符的消息。
Websocket 服务器使用 Tyrus java websocket 客户端实现处理任何消息大小。我在这里缺少什么?

0 投票
1 回答
396 浏览

android - Tyrus Websockets Android:无法解析 Lorg/glassfish/tyrus/core/OsgiRegistry

我使用 tyrus-standalone-client.jar 版本 -1.10 让我的 Android 应用程序使用 Web 套接字。

我的堆栈跟踪如下:

研究了一下,一些消息来源说 jar 的版本可能不稳定。所以,我尝试了 1.9 和 1.8.3。问题没有解决。请提出任何稳定版本或任何关于其他可能错误的想法。