我需要从我的Java桌面应用程序访问运行SignalR Hub的websocket服务器。 有一个库可以做到这一点,但它已经停止更新。存在很多问题和拉取请求,自2015年以来就没有更新过了。 我还发现了另一个库,但据我所知,它只适用于Android项目。 我找到了一个SO问题,它说可以通过一些变通方式直接与SignalR服务器(标准websocket调用)进行通信,但给出的链接已经失效了。 当我尝试使用websocket直接访问服务器时,HTTP握手失败了(我得到的是HTTP 200而不是101)。 有人能帮忙吗?
您不能仅使用裸WebSocket连接到SignalR 2.x。原因是启动连接需要发送几个HTTP请求,这些请求必须按特定顺序发送并包含特定内容。我在博客文章中描述了SignalR协议。阅读此文章后,您将了解为什么需要专用的SignalR 2.x客户端。 话虽如此 - SignalR for ASP.NET Core 的新版本不再具有这个协议和要求,现在可以只使用裸的websockets连接到服务器。我之前创建了一个演示,展示了如何实现 - 你可以在这里找到详细信息。我也开始工作一个关于hubs层的示例,但还需要完成它。