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

Chr*_*ckx 6 java websocket signalr signalr-hub java-websocket

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

  • 一个图书馆正是这样做的,但它已经死了.有很多问题和拉取请求,自2015年以来尚未更新.
  • 我还找到了另一个库,但据我所知,它只适用于Android项目.
  • 我发现了一个SO问题,它说可以通过一些变通方法直接与SignalR服务器(标准websocket调用)对话,但是给定的链接已经死了.

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

有人可以帮忙吗?

Paw*_*wel 6

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

话虽这么说- 用于ASP.NET CoreSignalR的新版本不再具有此协议和要求,并且可以仅使用裸露的websocket连接到服务器。我不久前创建了一个演示,演示了如何执行此操作-您可以在此处找到详细信息。我还开始研究集线器层的示例,但需要完成它。