java - 如何仅使用 websockets 将 java 客户端连接到 SignalR Hub?

标签 java websocket signalr signalr-hub java-websocket

我需要从我的 Java 桌面应用程序访问与 SignalR Hub 一起运行的 websocket 服务器。

  • a library确实如此,但它已经死了。有很多问题和拉取请求,自 2015 年以来就没有更新过。
  • 我还找到了another library但是,据我所知,它仅适用于 Android 项目。
  • 我找到了 a SO question这表示可以通过一些解决方法直接与 SignalR 服务器(标准 websocket 调用)对话,但给定的链接已失效。

当我尝试使用 websocket 直接访问服务器时,HTTP 握手失败(我得到 HTTP 200 而不是 101)。

有人能帮忙吗?

最佳答案

您将无法仅使用裸 webSocket 连接到 SignalR 2.x。这样做的原因是启动连接需要一些 HTTP 请求,这些请求必须以特定顺序发送并包含特定内容。我在 blog post 中描述了 SignalR 协议(protocol).阅读这篇文章后,您将理解为什么存在 SignalR 2.x 的专用客户端。

话虽如此-新版本SignalR for ASP.NET Core不再有此协议(protocol)和要求,并且可以仅使用裸 websockets 连接到服务器。我刚才创建了一个演示,展示了如何执行此操作 - 您可以找到详细信息 here .我也是started working关于集线器层的示例,但需要完成它。

关于java - 如何仅使用 websockets 将 java 客户端连接到 SignalR Hub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46681382/

相关文章:

java - 方法不适用于有关 Java 中泛型或类型删除的参数

javax.el.E​​LException : Provider com. 未找到 sun.el.E​​xpressionFactoryImpl

python - 如何从 Django Channels 获取查询参数?

node.js - Socket.io:将消息发送到具有特定 ID 的特定命名空间

performance - 信号器性能发生巨大变化的原因是什么?

javascript - SignalR 的跨域协商请求错误

c# - SignalR 2.0.0.0 : $. 连接未定义

java - 将字符串转换为 am/pm 格式的日期和时间

java - 外部硬件信息

java - 在 Jetty 9 上配置 SSL : oeji. SelectorManager :qtp1706748598-22-selector-0: java. lang.NullPointerException